0

透明度のあるpng画像のアウトライン(ボーダー)の描き方。

この画像があるように:ここに画像の説明を入力

そして、これが欲しい:ここに画像の説明を入力

HTML5 で画像の影を作成していますが、必要なものを取得できませんでした。HTML5、jquery、またはその両方を使用して描画したいのですが、他のアイデアがあれば教えてください。

<img id="scream" src="images/apple/Tool.png" alt="The Scream" style="display:none">
<p>Canvas:</p>
<canvas id="myCanvas" width="500" height="500" style="border:1px solid #d3d3d3;">
Your browser does not support the HTML5 canvas tag.</canvas>
<script>
    var c=document.getElementById("myCanvas");
    var ctx=c.getContext("2d");
    var img=document.getElementById("scream");

    ctx.shadowColor="#000000";
    ctx.shadowOffsetX = 0;
    ctx.shadowOffsetY = 0;
    ctx.shadowBlur = 15;
    ctx.drawImage( img, 25, 25 );
</script>
4

1 に答える 1

0

この質問は役に立ち、おそらくこのコードだと思います

<div id="fadeMe">
    <img src="transparent.png" alt="" />
</div>

これを回避する別の方法は、構造を変更できなかったために使用したこの単純な jQuery プラグインです。帰属を示しますが、正直なところ、どこで見つけたのか思い出せません。

/* IE PNG fix multiple filters */
(function ($) {
    if (!$) return;
    $.fn.extend({
        fixPNG: function(sizingMethod, forceBG) {
            if (!($.browser.msie)) return this;
            var emptyimg = "empty.gif"; //Path to empty 1x1px GIF goes here
            sizingMethod = sizingMethod || "scale"; //sizingMethod, defaults to scale (matches image dimensions)
            this.each(function() {
                var isImg = (forceBG) ? false : jQuery.nodeName(this, "img"),
                    imgname = (isImg) ? this.src : this.currentStyle.backgroundImage,
                    src = (isImg) ? imgname : imgname.substring(5,imgname.length-2);
                this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + sizingMethod + "')";
                if (isImg) this.src = emptyimg;
                else this.style.backgroundImage = "url(" + emptyimg + ")";
            });
            return this;
        }
    });
})(jQuery);
于 2013-02-12T13:24:36.760 に答える