我正在使用Imagemagick,我想知道如何压缩所有内部jpg
张图像的zip文件,并将其尺寸更改为40K
以下。
到目前为止,我已经尝试过
根据:
https://gist.github.com/rkbhochalya/d3557a9d122ab547c040af3adbd565c2
find . -name "*.jpg" -exec convert -define jpeg:extent=40kb "{}" -sampling-factor 4:2:0 -strip -colors 16 -depth 8 -define jpeg:extent=38kb "{}" \; -exec echo "{}" \;
但是它只能将比特率和颜色降低到16可以,但是还不够。
尝试magick mogrify -strip -colors 16 -depth 8 -quality 90 assets/*.jpg
但是我仍然需要将每张图像减少到40K以下
谢谢
答案 0 :(得分:1)
尝试使用mogrify而不是convert。它将处理目录中的所有图像。参见https://imagemagick.org/Usage/basics/#mogrify。
但是,除非尺寸很小,否则您永远不会得到这样的命令来获取PNG的40K文件大小。尝试另存为JPG。 JPEG范围定义仅适用于保存为JPG。
因此,要保存为JPG,如果我将图像放在桌面上的文件夹test1中,并且想要保存到桌面上的文件夹test2中,我会这样做
var objList = new List<string[]> {
new string[2] {"1", "first"},
new string[2] {"1", "last"},
new string[2] {"2", "you"},
};
var asDict = objList.ToDictionary(
arr => arr[0],
grp => grp.Last()
);
如果您真的想另存为PNG,则最好的方法是(或进一步减少颜色)
cd
cd desktop/test1
mogrify -path ../test2 -format jpg -strip -depth 8 -define jpeg:extent=40kb *
但是,除非您的图像的宽度和高度都非常小,否则它们都不会降至40K。您可以尝试添加-quality,但是PNG的质量值不同于JPG。参见https://imagemagick.org/script/command-line-options.php#quality
我认为另存为JPG将为您提供最好的机会。