我使用HTML畫布投影圖像。當我嘗試操縱圖像數據的Alpha通道時,我發現任何時候都會將其清零,像素中的其他值也會發生變化。即使設置爲較低的數字,它們似乎也會改變。從控制檯執行此操作當alpha = 0時畫布損壞rgb
canvas=document.getElementById('canvasid')
ctx=canvas.getContext('2d')
mydata=ctx.getImageData(20,20,20,20)
for (var i=0;i<1600;i+=4){mydata.data[i+3]=0}
ctx.putImageData(mydata,20,20)
mydata=ctx.getImageData(20,20,20,20)
for (var i=0;i<1600;i+=4){mydata.data[i+3]=255}
ctx.putImageData(mydata,20,20)
導致黑色方塊而不是恢復應該在RGB值中的圖像。
發生在Chrome和Safari瀏覽器,沒有測試其它
任何線索,我在做什麼錯。
感謝您的幫助。我有其他原因保留原件。我只保存一個畫布,其中有未遮罩的Alpha通道和getImageData,然後將Alpha和putImageData設置爲我正在顯示的畫布。 – bobbdelsol
是的,這是意想不到的行爲,不是*應該發生的事情。順便說一句,除了Chrome之外,IE11和FF27也會出現這種相同的不良行爲。 – markE