Nodejs Sharp webp 无损压缩

NAG*_*NAG 6 node.js sharp

我正在开发 Imgix 的类似服务,并且正在使用 Sharp。

\n\n

但Imgix的webp无损压缩比Sharp获得更好的效果。相同宽度和高度的相同图像在 Imgix 中为 453\xc2\xa0KB,而在 Sharp 中为 1.3\xc2\xa0MB。

\n\n

有什么建议可以在不损失质量的情况下增加压缩吗?

\n\n

我正在使用的代码:

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

Chu*_*ran 7

我看到该文档有一些选项:质量、alphaQuality、nearLossless、force。你能尝试一下吗?并与IMGIX进行比较

  • Quality : 数字质量,整数1-100(可选,默认80)
  • alphaQuality:alpha层的数字质量,整数0-100(可选,默认100)
  • lossless : Boolean 使用无损压缩模式(可选,默认 false)
  • closeLossless : Boolean 使用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);
});
Run Code Online (Sandbox Code Playgroud)