2012-07-05 28 views
1

我使用下面的代碼來修改圖像的透明度。然而,我想要做的只是修改圖像的背景顏色,並將其alpha通道設置爲0而不是整個圖像。使用JS將圖像的特定背景顏色設置爲透明使用JS

以下代碼將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

您可以在特定的像素獲取顏色,像這樣 'VAR imgd = ctx.getImageData(X,Y,1,1) ; var data = imgd.data; var out = $('#result'); var hexString = RGBtoHex(data [0],data [1],data [2]);' 然後您可以檢查顏色是否與所需的值匹配並設置alpha – Amit

回答

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;    
} 
+0

爲什麼我沒有想到這個! ?謝謝,工作過。 – fuzz