あなたが探していた行に沿って次のものがあることを願っています。それはかなりうまくいったと思います。そこで、私はthe articleのフィルタライブラリコードを使用し、ライブラリ用の新しいグローフィルタを作成しました。グロー効果を示すLive Demoです。
これは、ライブラリ
Filters.glow = function(pixels, passes, image, glowPasses){
for(var i=0; i < passes; i++){
pixels = Filters.convolute(pixels,
[1/9, 1/9, 1/9,
1/9, 1/9, 1/9,
1/9, 1/9, 1/9 ]);
}
var tempCanvas = document.createElement("canvas"),
glowCanvas = document.createElement("canvas"),
tCtx = tempCanvas.getContext("2d"),
gCtx = glowCanvas.getContext("2d");
tempCanvas.width = glowCanvas.width = pixels.width;
tempCanvas.height = tempCanvas.height = pixels.height;
tCtx.putImageData(pixels, 0, 0);
gCtx.drawImage(image, 0, 0);
gCtx.globalCompositeOperation = "lighter";
for(i = 0; i < glowPasses; i++){
gCtx.drawImage(tempCanvas,0,0);
}
return Filters.getPixels(glowCanvas);
}
に追加する必要があるフィルタコードであり、これは、あなたが上記のフィルタを使用する方法です。
var glowImage = document.images[1],
glowMask = document.images[0],
c = document.getElementById("canvas"),
ctx = c.getContext("2d");
window.onload = function() {
var pData = Filters.filterImage(Filters.glow, glowImage, 5, glowMask, 2);
c.width = pData.width;
c.height = pData.height;
ctx.putImageData(pData, 0, 0);
}
2枚の画像を提供する必要があります。最初のイメージは、グローが表示されるイメージ、もう1つはイメージに適用される実際のグローマスクです。次に、実行するブラーパスの数を指定して、グローをより目立たせ、実行するグローの数を指定して、グローをイメージに追加することができます。私はそれをアルファブレンディングするキャンバスにグローバルなコンポジションlighter
を使用します。
This articleは、グロー効果を作成する上で非常に優れたリソースです。また、自分の結果をテストするためにグラフィックを取得した場所です。
このようなエフェクトの表示例は、前後の例がありますか? – eh9