главная/Node JS: конвертация и сжатие изображений
Node js конвертация картинок

Node JS: конвертация и сжатие изображений

Простой скрипт для сжатия, конвертации и изменения размеров изображений при помощи Node JS.

Для начала, установим модуль Sharp.

npm i sharp

Теперь подключим его через require.

const Sharp = require('sharp');

Далее, указываем путь до исходной картинки. В моем случае это input.jpg в корневом каталоге.

  1. После чего, изменим размеры изображения до 200 пикселей в ширину и высоту при помощи метода resize.
  2. Переводим в формат png методом toFormat.
  3. Сжимаем качество до 80%
  4. В методе 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.