Изменение размера изображения с использованием GraphicMagick gm с 'convert' приводит к несовместимому изображению - PullRequest
0 голосов
/ 04 декабря 2018

Я пытался изменить размеры изображений с помощью модуля node.js gm.Это сработало для большинства изображений. Но когда я пытаюсь изменить размеры нескольких изображений, цвет фона и текст на изображении накладываются друг на друга. Моё требование - создавать изображения различной ширины без изменения цвета фона.

 gm.command('convert')
                .resize(100)
                .gravity('Center')
                .background('none')
                .extent(100)
                    .toBuffer('JPG', function(err, buffer) {
                        if (err) {
                            next(err);
                        } else {
                            next(null, buffer, key);
                        }
                    });

Ниже приведено оригинальное изображение enter image description here

После изменения размера изображения, как показано ниже

enter image description here

Я попытался удалить фон и попытался добавить прозрачный («белый»), но это не дало мне ожидаемого результата.Однако, когда я использую обычный инструмент командной строки для изменения размера, он работает как положено. Но мой код использует модуль node-js gm и развернут в AWS Lambda

Может кто-нибудь помочь мне в решении этой проблемы.

1 Ответ

0 голосов
/ 05 декабря 2018

JPG не поддерживает прозрачность.Попробуйте сохранить результаты в формате PNG или TIFF.Вы также можете попробовать ImageMagick, а не GraphicsMagick.Следующее прекрасно работает для меня в командной строке ImageMagick:

enter image description here

convert image.png -resize 100 -background none -gravity center -extent 100 result.png


enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...