我到处搜索但找不到答案。 我想准确输出50Kb的文件夹的所有图像,并保持原始的宽高比。
我尝试ImageMagick
并调整为250x250,但它对我不起作用,它的作用是改变第一个维度并调整另一个维度,因此输出图像的大小不同。
for image in `ls $@*.jpg`; do
mogrify "${image}" -resize 250x250 "${image}"
done
怎么做?感谢
答案 0 :(得分:0)
更新了答案
如果您希望图像的文件大小限制为50kB,请使用:
convert input.jpg -define jpeg:extent=50KB output.jpg
原始答案
使用mogrify
,但请注意它会覆盖您的所有图片:
mogrify -resize 250x250! *.jpg
一般情况下,使用mogrify
时,我喜欢使用-path
选项为结果指定输出目录,这样可以避免原件被覆盖:
mkdir results
mogrify -path results ...
如果您在调整大小后添加!
,即使它会扭曲图片的形状,也会强制调整大小,您的脚本将会有效。
如果你想要一种与Python类似的方法,我写了一个非常好的答案here。它对满足最大尺寸要求的JPEG质量进行二进制搜索。