2016-02-11 90 views
0

我有一个带白色背景的画布。所以,当我想清楚了,有没有使用清除和用画布中的背景色填充矩形之间的区别

clearRect(); 
fillStyle="#FFFFFF"; 
fillRect(); 

fillStyle="#FFFFFF"; 
fillRect(); 

之间的区别是使用其中的任何被认为是更好的做法还是对的getImageData()的结果产生影响?

+2

我认为'clearRect'只是画一个透明的黑色矩形。如果你画那个矩形,它应该是没用的。 – Oriol

+2

如果要填充画布,没有必要清除画布,它对getImageData方法没有任何影响,因为它只是读取像素数据,不管它是什么或创建方式。我个人创建了一个小图片并使用'drawImage(background,0,0,canvas.width,canvas.height);'因为它提供了显着的性能优势,特别是当你有毕业背景时。图像只需要8×8像素。 – Blindman67

+0

@ Blindman67 ahh okk谢谢! – Tom

回答

1

如果您没有先清除它,那么您将在之前的工作之上进行绘图。如果您没有使用任何透明胶片,也许这是好的。

另一个区别是clearRect()不使用白色背景。它使用一个透明的。

+0

好的,但是当我在顶部绘制时,它对'imageData'没有任何影响吗? – Tom

+0

帆布只知道像素。当您覆盖像素时,旧数据无法保存。 –