我试图使用sharp.js压缩PNG,并试图找到我想要在最终程序中使用的正确值。我创建了一个基本的for循环,它将quality参数从0改为100,将其更改为5。这是很好的工作,直到它达到15%,仍然有一些压缩之后,但文件大小和照片整体看起来是一样的(嗯,我没有看到任何区别)。下面是我调用的函数:
await sharp(img.data)
.png({
quality: i,
force: true,
})
.toFile(`./output/${i}.png`);我只是一个数字,img.data是来自一个使用post请求(req.files.image)中的图像的快递服务器。
下面也是我在文件资源管理器中看到的内容(文件名对应于创建文件时的i ):

发布于 2022-11-21 17:42:57
支持alpha透明的基于调色板的图像的
options.palette布尔量化(可选,默认为false)
options.quality数字使用达到给定质量所需的最低颜色数,将调色板设置为真(可选,默认为100)
无论出于什么原因,任何质量在15~100之间的托盘尺寸似乎都是相同的(可能是因为这是最大的托盘尺寸)。
尝试对另一种图像类型(例如,jpg)和另一种颜色较少的图像进行相同的测试。
https://stackoverflow.com/questions/74522836
复制相似问题