Node JS: конвертация и сжатие изображений
Простой скрипт для сжатия, конвертации и изменения размеров изображений при помощи Node JS.
Для начала, установим модуль Sharp.
npm i sharp
Теперь подключим его через require.
const Sharp = require('sharp');
Далее, указываем путь до исходной картинки. В моем случае это input.jpg в корневом каталоге.
- После чего, изменим размеры изображения до 200 пикселей в ширину и высоту при помощи метода resize.
- Переводим в формат png методом toFormat.
- Сжимаем качество до 80%
- В методе toFile указываем путь и имя для сконвертированного изображения, а также выводим информацию в консоль через функцию обратного вызова.
Пример кода целиком
const Sharp = require('sharp');
Sharp('image.jpg')
.resize({ width: 200, height: 200 })
.toFormat('png')
.png({ quality: 80 })
.toFile('output.png', (err, info) => {
if (err) {
console.error(err);
} else {
console.log(info);
}
});
Для конвертации в формат jpg, укажите в методе toFormat строку ‘jpeg’, и замените метод png на jpeg.