Nodejs Sharp WebP сжатие без потерь - PullRequest
0 голосов
/ 02 марта 2019

Я занимаюсь разработкой аналогичного сервиса Imgix и использую Sharp.

Но сжатие Webg без потерь Imgix дает лучшие результаты, чем Sharp.Одно и то же изображение с такой же шириной и высотой в Imgix имеет 453 КБ и Sharp 1,3 МБ.

Некоторые рекомендации по увеличению сжатия без потери качества?

Код, который я использую:

https.get(url, function (response) {
    let transform = sharp().toFormat('webp').resize(width, height);
    return response.pipe(transform).webp({lossless:true}).pipe(res);
});

1 Ответ

0 голосов
/ 09 марта 2019

Я вижу, что у документа есть несколько полей в опциях: качество, альфа-качество, почти без потерь, сила.Можешь попробовать?И сравните с IMGIX

  • качество Качество числа, целое число 1-100 (необязательно, по умолчанию 80)
  • alphaQuality Качество числа альфа-слоя, целое число0-100 (необязательно, по умолчанию 100)
  • без потерь Логический режим сжатия без потерь (необязательный, по умолчанию false)
  • nearLossless Логическое использование near_lossless сжатиярежим (необязательно, по умолчанию false)
  • force Логическое значение принудительного вывода WebP, в противном случае попытайтесь использовать формат ввода (необязательно, по умолчанию true)
https.get(url, function (response) {
    let transform = sharp().toFormat('webp').resize(width, height);
    return response.pipe(transform).webp({lossless:true, quality: 60, alphaQuality: 80, force: false}).pipe(res);
});
...