使用gm节点模块转换图像的颜色空间

时间:2015-07-21 23:16:15

标签: node.js npm imagemagick

我正在尝试使用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);
          }
      });
    }
  });

非常感谢任何想法或具体例子 - 谢谢!

1 个答案:

答案 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');
});