2017-01-28 17 views
1

Я использую GraphicsMagick для изменения размера и сохранения изображений, загруженных в мое веб-приложение. Проблема в том, что даже при настройке качества до 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) { 
     ... 
    }; 

Я думаю, что я делаю что-то неправильно, но я не могу найти, где это ошибка. Я искал документацию, я искал в googled, просматривал все вопросы здесь, но я не нашел никого, у кого была такая же проблема, как у меня.

Вся помощь будет оценена, спасибо вам большое!

ответ

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

0

я также имел проблемы с качеством изображения с ГМ, а затем я использовал этот модуль. https://github.com/oliver-moran/jimp это сработало для меня. I качество изображения после изменения размера было намного лучше

 Смежные вопросы

  • Нет связанных вопросов^_^