2015-07-21 96 views
0

我正在嘗試使用gm節點模塊轉換圖像的色彩空間。我將結果轉化爲緩衝區,而不是將其寫入文件(如果這有所幫助)。下面的代碼是否正確調整圖像大小,但不改變顏色空間(從灰色到RGB):使用gm節點模塊轉換圖像的色彩空間

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'); 
}); 
+0

這似乎是正確的,但圖像正在轉換爲緩衝區,發送一點,最終保存,並保持色彩空間。轉換爲緩衝區會改變什麼嗎? –

相關問題