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

xtr*_*3me 4 node.js graphicsmagick

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

谢谢!

Joe*_*ard 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) + ")";
        // ...
    });
Run Code Online (Sandbox Code Playgroud)

基本上,您可以裁剪图像并将其转换为ppm格式以从缓冲区中读取像素.根本不是最优的,我真的希望有一个更好的解决方案,但就我的情况而言,这已经足够了.

编辑:另一个选项可能是使用自定义参数.