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