没有alpha的html5画布drawImage

时间:2011-08-16 10:09:52

标签: html5 canvas transparency drawimage

我想知道是否可以不使用Alpha通道但保持透明度。 我需要的是绘制或不绘制像素(我的png文件)取决于alpha值

若Alpha通道> 128画Pixel 否则不画像素!

感谢的

1 个答案:

答案 0 :(得分:2)

可能有几种方法可以解决这个问题。

一种方法是绘制图像,然后调用getImageData

遍历图像数据中的每个像素,如果alpha分量<= 128,则使该像素完全透明。

然后将修改后的imageData放回putImageData

这是来自记忆,所以我可能错过了一些东西:

var imageData = ctx.getImageData(0,0,picwidth, picheight);
var pixels = imageData.data;
var numPixels = pixels.length;

ctx.clearRect(0, 0, can.width, can.height);

for (var i = 0; i < numPixels; i++) {
    if (pixels[i*4+3] <= 128) pixels[i*4+3] = 0;
}
ctx.putImageData(imageData, 0, 0);