В последнее время я использую JS для интересных вещей и обработки изображений. В Интернете есть множество обучающих программ с различными методами, и некоторые методы могут не работать. В этой статье мы поделимся с вами проверенным автором методом использования NodeJS для обработки изображений.
npm i gm
gm — это библиотека Node, предоставляющая некоторые API JS, позволяющие разработчикам обрабатывать изображения. Но он опирается на GraphicsMagick или ImageMagick. Фактически, gm — это командная строка для вызова этих двух инструментов.
Другими словами, помимо установки gm нам также необходимо установить GraphicsMagick или ImageMagick.
ИзображениеМагияАвтор использует MacOS и сразу решил установить ImageMagick.
Согласно команде официального сайта, требуется всего 1 строка кода (при условии, что на вашем Mac установлен Brew):
заварить установку imagemagick --with-webp
Позвольте мне представить параметр --with-webp
. Его можно удалить, но если вы хотите обрабатывать изображения в формате webp, его необходимо добавить.
Удобнее использовать Brew. Вам не нужно беспокоиться о переменных окружения.
ГрафикаМагия
Конечно, если вы не используете ImageMagick, вы можете использовать GraphicsMagick:
заварить установку графикиmagick
Сначала я решил установить ImageMagick, и когда я это писал, то всегда получал ошибку:
const gm = require('gm'); gm('Путь к файлу изображения').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('Путь к выходному файлу', function (err) { если (ошибка) { вернуть console.log(ошибка); } еще { console.log('успех'); } });
Если вы хотите использовать ImageMagick, описанный выше способ написания на самом деле неверен. Вам следует написать так, четко указав, что я хочу использовать инструмент ImageMagick
:
const g = require('gm'); const gm = g.subClass({imageMagick: true}); gm('Путь к файлу изображения').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('Путь к выходному файлу', function (err) { если (ошибка) { вернуть console.log(ошибка); } еще { console.log('успех'); } });
Для справки запишите часто используемые функции GM:
Примечание: gm можно вызывать по цепочке, и его очень интересно писать. Он считывает файл изображения из gm(filename), обрабатывает его слой за слоем и, наконец, записывает его в файл file.write(filename, callback).
Увеличить изображение
.resize(width, height)
Обрезать изображение
.crop(width, height, x, y)
Повернуть изображение
.rotate(color, deg)
color — цвет фона (если угол поворота градусов не кратен 90, цвет фона пригодится, просто используйте формат «#ededed»)