对Canvas屏幕上的所有像素求和

Summing all pixels on a Canvas screen?

本文关键字:像素 求和 Canvas 屏幕      更新时间:2023-09-26

尝试将画布上所有像素的值相加:

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);

这个方法正确吗?

所示的代码将只给出所有组件的和,而不是每se像素。

您确实需要更改循环条件,以及声明i:

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

还要注意,这将包括alpha通道。

如果这是用于校验和(将图像/内容与"指纹"进行比较),那么它将是一个糟糕的选择,因为获得相似和的机会比其他方法要高得多。您可以使用16位或32位宽范围而不是字节,或者使用更成熟的算法,如CRC-32、MD5和SHA-1/256。不清楚你要用它来做什么,所以我就不写了