如何使用Node.js gm graphicsMagick包装器获取

时间:2013-05-03 01:17:23

标签: node.js graphicsmagick

我目前正试图弄清楚如何使用Node.js gm graphicsMagic包装获取单个像素。我的总体目标是在图像中获得前10种颜色的百分比。我正在尝试编写一些函数来获取我的结果,但对于我的生活,我无法弄清楚hwo使用gm包装器获取像素本身。似乎GraphicsMagick有一个GetPixels方法,但我没有运气能够调用它。任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分: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格式以从缓冲区中读取像素。根本不是最优的,我真的希望有更好的解决方案,但对于我的情况来说这已经足够了。

编辑:另一种选择可能是使用Custom Arguments