2

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

4

1 回答 1

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;            
}
于 2012-07-05T08:53:26.983 回答