var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
var data = imageData.data;
和什麼是兩個語句之間的區別... context.getImageData()。數據和
var data = context.getImageData(0, 0, canvas.width, canvas.height).data;
它們都具有不同的效果,爲什麼呢?
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
var data = imageData.data;
和什麼是兩個語句之間的區別... context.getImageData()。數據和
var data = context.getImageData(0, 0, canvas.width, canvas.height).data;
它們都具有不同的效果,爲什麼呢?
如果你已經改變了按您的評論的代碼,即你現在有:
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
var data = context.getImageData(0, 0, canvas.width, canvas.height).data;
那麼你的問題是可能,你現在已經得到了圖像的像素數據的兩個單獨的副本,和你正在修改的那個不是那個被複制的那個。
所以,你說#1的情況下,「var數據」的任何更改將反映回來到「var imageData」,但不是在#2的情況下?我儘管你有不同的副本。我無法在任何地方找到.data的文檔... – Nitin 2012-02-03 23:20:50
'.getImageData()'返回的值包含多個屬性,其中_one_是'.data' - RGBA值的_array like_結構。在最初的情況下,代碼獲得了該結構的_reference_,而不是新的副本,所以對'data'_do_的更改會影響'imageData'。 – Alnitak 2012-02-03 23:24:03
而在您的代碼中(據我所知),您確實已經制作了兩個獨立的圖像數據副本。 – Alnitak 2012-02-03 23:26:30
他們呢?什麼是不同的效果? – Fosco 2012-02-03 22:34:22
@Fosco view-source:http://jakearchibald.com/scratch/alphavid/ - 第49行和第50行,如果你改變了我提出的問題,你會看到效果......它不再透明 – Nitin 2012-02-03 22:37:22
使代碼正常工作,你必須改變更多,只是行49和50 - 代碼需要在後面的行中的兩個變量,你的版本只聲明其中的一個。 – Alnitak 2012-02-03 22:47:37