我正在尝试使用gm节点模块来转换图像的颜色空间。我将结果转换为缓冲区,而不是将其写入文件(如果这有所不同)。以下代码正确调整图像大小,但不更改颜色空间(从灰色到rgb):
gm(image).size(function(err, size) {
if(size.width > 1024 || size.height > 1024) {
// Transform the image buffer in memory.
this
.colorspace('RGB')
.resize(width, height)
.toBuffer(imageType, function(err, buffer) {
if (err) {
next(err);
} else {
next(null, 'image/jpeg', buffer);
}
});
}
});
非常感谢任何想法或具体例子 - 谢谢!
答案 0 :(得分:1)
也许你可以使用原始界面?它看起来像
image.convert(['inputimage.jpg','-colorspace','gray','output.jpg'],function(...)
还有这样的事情:
var fs = require('fs')
, gm = require('./gm');
// change to grayscale
gm('/path/to/your/img.jpg')
.colorspace('GRAY')
.write('/path/to/result/image.png', function (err) {
if (!err) console.log('done');
});