尝试使用ImageMagick和定义的最大输出大小(KB),你想,让它降低质量,直到大小达到:
convert input.jpg -define jpeg:extent=2000k output.jpg
例如,如果我创建了一个2000×2000噪音的图像,像这样
convert -size 2000x2000 xc:gray +noise gaussian input.jpg
我得到这个4MB文件。
[email protected] 1 mark staff 4175639 12 May 15:40 input.jpg
如果我使用上面的命令,以减少文件大小
convert input.jpg -define jpeg:extent=2000k output.jpg
我得到这个1.9MB的文件
-rw-r--r-- 1 mark staff 1933708 12 May 15:41 output.jpg
但它的像素尺寸保持不变,在2000×2000
identify output.jpg
output.jpg JPEG 2000x2000 2000x2000+0+0 8-bit sRGB 1.934MB 0.000u 0:00.000
只为付n,您可以看到如何设置不同的文件大小更改质量设置:
convert input.jpg -define jpeg:extent=2000k output.jpg <--- 2MB file => 82 quality
identify -verbose output.jpg | grep -i quality
Quality: 82
convert input.jpg -define jpeg:extent=1000k output.jpg <--- 1MB file => 65 quality
identify -verbose output.jpg | grep -i quality
Quality: 65
convert input.jpg -define jpeg:extent=500k output.jpg <--- 500kB file => 38 quality
identify -verbose output.jpg | grep -i quality
Quality: 38