使用JS将图像的特定背景颜色设置为透明

时间:2012-07-05 07:16:51

标签: javascript

我正在使用以下代码修改图像的透明度。但我想做的只是修改图像的背景颜色并将其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)为透明。

1 个答案:

答案 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;            
}