2015-06-08 23 views
0

試圖總結在畫布上的所有像素的值:在Canvas屏幕上總結所有像素?

var imageData = ctx.getImageData(0, 0, 1280, 720); 

var imgData = imageData.data; 
    console.log(imgData); 
    for(i=0; i<= imgData.length; i++){ 
     pixelSum = pixelSum + imgData[i]; 
    } 
    alert(pixelSum); 

這是正確的做法?

+0

不,至少是這樣的:'i <= imgData.length'應該是'i usr2564301

回答

0

顯示的代碼將只給出所有組件的總和,而不是每個SE的像素。

你確實需要改變循環條件雖然,以及申報i

for(var i = 0; i < imgData.length; i++){ ... 

另外請注意,這將包括alpha通道。

如果這是檢查總結(比較圖像/內容與「指紋」),那麼這將是一個糟糕的選擇,因爲獲得類似總和的機會遠高於其他方法。您可以使用16位或32位寬範圍而不是字節,也可以使用更爲成熟的算法,如CRC-32,MD5和SHA-1/256。目前還不清楚你打算如何使用它,所以我把它留下。