2013-05-03 68 views
4

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

谢谢!

+0

你对这件事有好消息吗?我碰巧找到和你一样的情况。谢谢! – Korcholis 2014-01-30 18:45:32

回答

6

我想获得一个图像的平均颜色,我用下面的脚本解决了这个问题:

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

相关问题