2012-03-19 34 views
0
ctx.drawImage(preview,0,0, preview.width, preview.height) 
var imgdata = ctx.getImageData(0,0, preview.width, preview.height).data; 
ctx.putImageData(opaque(ctx.createImageData(10,10)), 0,0) 

不透明函數將alpha數據設置爲1.以便疼痛10 * 10的黑色方塊。putImageData不起作用檢查現有問題

function opaque(imgData){ 
     for(var i=0, data = imgData.data; i<data.length; i=i+4){    
      data[i+3] = 1; 
     }  
     return imgData; 
    } 

但我的畫布看起來很白。

回答

1

你想做什麼?

如果要繪製黑色方塊,請使用context.fillRect(...)。它比操作imageData更高效。

如果要使imageData的某些部分完全透明,則需要將alpha通道設置爲0. Alpha通道的範圍爲[0..255],其中0表示完全透明,255表示完全不透明。

雖然我沒有真正運行它,但從閱讀你的opaque函數看來,它所做的一切似乎都是使imageData參數的像素幾乎完全透明。