在 node.js 上检测纯色图像

Detecting a solid color image on node.js

我正在使用 phantomjs 进行屏幕截图,但有时它会失败并生成纯灰色图像。

我只想测试一个图像是否只是纯色,如果是纯色则测试失败。

真正简单有效的测试方法是什么?

如果您的图像是 PNG,您可以使用像 png.js 这样的库来提取像素数据并按以下方式使用它:

var PNG = require('png-js');
PNG.decode('some.png', function(pixels) {
    // pixels is a 1d array (in rgba order) of decoded pixel data
});

然后您可以遍历像素数组,检查每个像素元素是否相同。如果它们都相同,那么您就得到了纯色结果。