我正在使用以下代码修改图像的透明度。但我想做的只是修改图像的背景颜色并将其alpha通道设置为0而不是整个图像。
以下代码将整个图像的Alpha透明度设置为0:
var ctx = this.data.getContext("2d");
var imgData = ctx.getImageData(0, 0, this.data.width, this.data.height);
ctx.putImageData(this.adjustImage(imgData), 0, 0);
adjustImage: function(iArray) {
var imageData = iArray.data;
for (var i = 0; i < imageData.length; i+= 4) {
imageData[i+3] = 0;
}
return iArray;
}
我正在帮助修改图片中的一种颜色rgb(255,0,255)
为透明。
答案 0 :(得分:3)
尚未对此进行过测试,但这应该可行
var ctx = this.data.getContext("2d");
var imgData = ctx.getImageData(0, 0, this.data.width, this.data.height);
ctx.putImageData(this.adjustImage(imgData), 0, 0);
adjustImage: function(iArray) {
var imageData = iArray.data;
for (var i = 0; i < imageData.length; i+= 4) {
if(imageData[i] === 255 && imageData[i+1] === 0 && imageData[i+2] === 255){
imageData[i+3] = 0;
}
}
return iArray;
}