HTML5画布ImageData的RGB值不正确

4

我正在为绘图应用程序制作油漆桶工具。

我使用 context.getImageData 查找画布中所有像素的颜色值。

但是,默认情况下所有rgba值都为0,即使画布默认为白色。现在我的油漆桶工具无法在用黑色勾勒的形状上工作,因为黑色的rgb为0,0,0,默认的画布图像数据也是这样,即使画布是白色的。

所以我的问题是是否可以更改默认图像数据,使其反映画布的实际默认颜色(白色或 255,255,255),或者如何快速清除画布到这种颜色。我看到可能存在的解决方案是,在清除画布时将每个像素的值设置为255。然而,由于画布的大小,这会导致几秒钟的延迟。

我是否忽略了其他可行的替代方案? 谢谢。

1个回答

4

一个空画布被初始化为 rgba(0,0,0,0)(即透明)

如果你想让所有东西都被初始化为白色,可以运行以下代码。

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

参考规范,它说:

当画布初始化时,它的位图必须被清除为透明黑色。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接