在“画布”屏幕上对所有像素求和?

时间:2015-06-08 10:15:32

标签: javascript 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);

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

显示的代码仅给出所有组件的总和,而不是每SE的像素。

您确实需要更改循环条件,并声明i

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

另请注意,这将包括alpha通道。

如果这是用于校验和(将图像/内容与&#34;指纹&#34;进行比较),那么它将是一个糟糕的选择,因为得到类似总和的机会远远高于其他方法。您可以使用16位或32位宽范围而不是字节,或更多已建立的算法,如CRC-32,MD5和SHA-1/256。目前还不清楚你打算用它做什么,所以我把它留下来。