我想使用sharp
中的node.js
调整图像大小并压缩图像
在jpeg
中,有单独的压缩;对于webp
,有单独的压缩;对于png
,有单独的压缩。
WEBP
sharp('a.jpg')
.resize(1000)
.webp({quality: 80})
JPEG
sharp('_4_.jpg')
.resize(1000)
.jpeg({quality: 80})
PNG
sharp('_4_.jpg')
.resize(1000)
.png({compressionLevel: 8})
基本上我想压缩图像并调整其大小,而不检查它们的格式。
sharp
中有什么用吗?
答案 0 :(得分:2)
如果您希望输出格式与输入格式匹配,则应查看force
选项。
sharp(input)
.jpeg({ progressive: true, force: false })
.png({ progressive: true, force: false })
...
不支持GIF输出,因此默认情况下,GIF输入将变为PNG输出。
其他参考:https://sharp.readthedocs.io/en/v0.17.0/api-output/#jpeg
答案 1 :(得分:0)
PNG 也是 quality
,但由于它是无损格式,因此默认设置为 100
。其中 JPG 默认设置为 80
。
通过减少 PNG 的 quality
,它将启用 palette
模式,这将减少编码中捕获的颜色数量。这将为文件大小提供一些很好的缩减。
compression
只是 zlib / zip 压缩,还没有发现它做太多 TBH。
文档中的所有内容:https://sharp.pixelplumbing.com/api-output#png
// this will disable loss-less mode, and reduce the colour accuracy to 90%
// it will also enable the palette
sharp('_4_.jpg')
.resize(1000)
.png({quality: 90})