2012-06-10 35 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

感谢您的解决方案。 –