我想知道是否可以不使用Alpha通道但保持透明度。 我需要的是绘制或不绘制像素(我的png文件)取决于alpha值
若Alpha通道> 128画Pixel 否则不画像素!
感谢的
答案 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);