如何使用Node.js gm图像处理库获取像素

4
我目前正在尝试使用Node.js gm图形处理包来获取单个像素。我的最终目标是获取图像中前10个带有百分比的颜色。我正在编写几个函数来实现这个目标,但就我而言,我无法弄清如何使用gm包来获取像素本身。看起来GraphicsMagick有一个GetPixels方法,但我没有成功调用它。任何帮助将不胜感激。

谢谢!


你有关于这件事的好消息吗?我恰好遇到了和你相同的情况。谢谢! - Sergi Juanola
1个回答

7

我想要获取一张图片的平均颜色,我用以下脚本解决了这个问题:

gm(file).setFormat('ppm')
    .resize(1, 1)
    .toBuffer(function (err, buffer) {
        var color = "rgb(" + buffer.readUInt8(buffer.length - 3)
            + "," + buffer.readUInt8(buffer.length - 2)
            + "," + buffer.readUInt8(buffer.length - 1) + ")";
        // ...
    });

基本上,您可以裁剪图像并将其转换为ppm格式以从缓冲区读取像素。这样做并不是最优解,我真的希望有更好的解决方案,但对于我的情况来说已经足够好了。
编辑:另一个选项可能是使用自定义参数

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接