我有一个aws图像文件,并且Iam使用Sharp压缩了图像,但是在压缩之后,文件大小大大增加了。就我而言,我的图片大小为6.5MB,压缩后的图片大小为19.5MB。
以下是我的代码:
[HiddenInput(DisplayValue = false)]
public string LeaID { get; set; }
我什至尝试使用const width = parseInt(image.height);
const height = parseInt(image.width);
var getObjectParams = {
Bucket: BUCKET,
Key: FILE_NAME
}
s3.getObject(getObjectParams).promise()
.then(data => {
sharp(data.Body)
.resize(width, height)
.ignoreAspectRatio()
.toFormat('png')
.toBuffer()
.then((buffer) => {
........
........
}
.max()
同样的问题,文件大小正在增加。就我而言,应保持图像的宽高比。任何建议,将不胜感激。谢谢
答案 0 :(得分:0)
这是Sharp
的常见问题,但这是一个不错的软件包。阅读Sharp
的{{1}} documentation。
如果您需要玩耍;
png
,options.quality
,options.colours
来压缩大量的任何PNG图像,并根据其文档
需要使用支持libimagequant编译的libvips
因此,您需要options.dither
的帮助才能实现目标。
根据该网站, libimagequant 是一个小型便携式C库,用于将RGBA图像高质量转换为8位索引颜色(调色板)图像。
相反,您可以使用this NPM PACKAGE called imagemin,并且我确信它使用相同的方法来压缩PNG图像。使用下面的一小段代码,您可以减小PNG的大小。
libimagequant
像const files = await imagemin(['images/*.{png}'], {
destination: 'build/images',
plugins: [
imageminJpegtran(),
imageminPngquant({
quality: [0.6, 0.8]
})
]
});
那样玩quality: [0.6, 0.8]
可以减小大小,您可以传递单个图像文件,例如quality: [0.2, 0.2]