2012-06-10 39 views
4

我正在繪製應用程序的油漆桶工具。HTML5 Canvas ImageData不正確的rgb值

我使用context.getImageData來找出畫布中所有像素的顏色值。

但是,默認情況下,儘管畫布默認爲白色,但默認情況下所有rgba值都是0。現在,我的油漆桶工具不適用於黑色輪廓的形狀,因爲黑色具有rgb 0,0,0,而且默認的畫布圖像數據也可以,即使畫布是白色的。

所以我的問題是我是否可以更改默認圖像數據,以便它反映畫布的實際默認顏色(白色或255,255,255),或者如何快速將畫布清除爲該顏色。我認爲一個解決方案是可能的,但效率卻非常低,在清除畫布時,要將每個像素的值設置爲255.但是,由於畫布的大小,這會導致執行時滯後幾秒鐘。

是否有任何其他替代品我可以忽略?謝謝。如果你想要的一切將被初始化爲白色,運行像這樣

回答

4

一個空白的畫布被初始化爲rgba(0,0,0,0)(即透明)

ctx.fillStyle = '#FFFFFF'; // or 'rgba(255,255,255,1)' 
ctx.fillRect(0,0,canvas.width, canvas.height); 

對於在spec參考它說:

當畫布被初始化,其位必須清透明的黑色。

+0

感謝您的解決方案。 –