透明度的颜色变化

时间:2012-05-16 12:10:57

标签: html5 html5-canvas

我在javascript HTML5画布中生成了一个图像。 我现在想说某种颜色的所有px(例如红色)都变得透明

1 个答案:

答案 0 :(得分:1)

var imgd = context.getImageData(0,0, canvas.widht, canvas.height);
var pix = imgd.data;

// Loop over each pixel and set alpha channel to 255 for every red pixel
for (var i = 0; n = pix.length, i < n; i += 4) {
  if ( pix[i  ] > 240 && pix[i+1 ] < 15 && pix[i+2] < 15 ) // it is kind of red
      pix[i+3] = 255; // alpha channel
}

// Draw the ImageData object at the given (x,y) coordinates.
context.putImageData(imgd, 0,0);

我没有测试代码,但它应该有效(如果没有,你有全局的想法)