我到处搜索但找不到这个问题的答案。
我想精确输出一个文件夹中的所有图像,大小为 50Kb,并保持原始的宽高比。
I tried ImageMagick
并将大小调整为 250x250 例如,但它对我不起作用,它所做的是更改第一个尺寸并适应另一个尺寸,因此输出图像的尺寸不同。
for image in `ls $@*.jpg`; do
mogrify "${image}" -resize 250x250 "${image}"
done
怎么办呢?谢谢
更新答案
如果您希望图像的文件大小限制为 50kB,请使用:
convert input.jpg -define jpeg:extent=50KB output.jpg
原答案
Use mogrify
,但要小心它会覆盖你的所有图像:
mogrify -resize 250x250! *.jpg
一般情况下,使用时mogrify
我喜欢用-path
选项指定结果的输出目录,如下所示以避免原始文件被覆盖:
mkdir results
mogrify -path results ...
如果您添加以下内容,您的脚本将起作用!
调整大小后强制调整大小,即使它扭曲了图片的形状。
如果你想要一种用 Python 做类似事情的方法,我写了一个非常有效的答案here https://stackoverflow.com/a/52281257/2836621。它对满足最大尺寸要求的 JPEG 质量进行二分搜索。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)