다음 내용은 당신이 찾고있는 라인을 따라 가고 싶습니다. 꽤 잘 나온 것 같아요. 그래서 나는 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 개 제공해야합니다. 첫 번째 이미지는 광선을 나타낼 이미지이고 두 번째 이미지는 이미지에 적용되는 실제 광선 마스크입니다. 그런 다음 수행 할 흐림 패스 수를 지정하여 광선을 더 두드러지게 보이게하고 수행 할 광선 횟수를 지정하여 이미지에 광선을 추가 할 수 있습니다. 저는 알파 블렌드 한 캔버스에 대해 글로벌 구성 인 lighter
을 사용합니다.
This article은 글로우 효과를 만드는 데 매우 훌륭한 리소스이며, 그래픽 효과가있는 곳에서도 내 결과를 테스트 할 수 있습니다.
예를 들어, 이전/이후의 예와 같은 효과가 어떤 모습일까요? – eh9