2016-02-11 111 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

帆布只知道像素。當您覆蓋像素時,舊數據無法保存。 –