2017-01-28 79 views
1

我使用GraphicsMagick調整並存儲上傳到我的Web應用程序的圖像。 問題是,即使將質量設置爲100,圖像的質量也會被破壞,而且看起來非常難看。NodeJS和GraphicsMagick:resize()破壞圖像質量

我使用的代碼是這樣的:

// ... "data" is the Buffer object I obtain from the upload 
gm(data) 
    .quality(100) 
    .resize(600) 
    .write("/path/to/write", function (err) { 
     ... 
    }; 

我覺得我做錯了什麼,但我找不到哪裏是錯誤的。 我搜索了文檔,我搜索了所有的問題,但沒有找到與我的問題相同的人。

所有幫助將不勝感激,非常感謝!

回答

0

大圖像等於大問題。

不僅是因爲您丟失的質量,而且還有流程花費的時間。

我建議你thumbnail方法做,或深入到這樣的方式使用imagemagick調整大小指定參數:

gm.resize({ 
    srcData : img, 
    strip : false, 
    width : 173, 
    height : "173^", 
    customArgs: [ 
    "-gravity", "center" 
    ,"-extent", "173x173" 
    ] 
}).write("/path/to/write", function (err) { 

...並避免嵌套和concating funcions。

要使用ImageMagick的你能做到這樣

var imageMagick = gm.subClass({ imageMagick: true }); 

然後使用ImageMagick的你通常會使用通用的方式相同。

希望這會有幫助

+0

謝謝你的建議!我沒有在文檔中找到resize()的這些參數。你有鏈接什麼的地方我可以閱讀更深入的細節? – Piero

+0

這是因爲我使用gm和imagemagick,這是一個很大的勝利 – locropulenton