如何使用ImageMagick的convert命令将图片调整为指定英寸尺寸?
解决方案
你需要根据命令中设置的DPI将英寸单位换算为像素值,再调整resize参数即可,换算逻辑为:像素数 = 英寸数 × DPI值
你当前命令中设置的DPI是72,对应8.5英寸宽度为 8.5 × 72 = 612 像素,11英寸高度为 11 × 72 = 792 像素,你可以根据自己的需求选择下面的修改方案:
方案1:保持原图纵横比,适配8.5×11英寸范围(推荐)
这种方案不会拉伸扭曲图片,会自动按比例缩放,让图片完整放进8.5×11英寸的画布内,修改后的完整命令如下:
convert "folder\*.png" -format jpg -resize 612x792> -quality 70 -strip -density 72 -interlace Plane -set filename:fname %t-1 +adjoin "C:\Users\%USERNAME%\Desktop\New folder\%[filename:fname].jpg"
参数说明:
- 后缀
>代表仅当原图尺寸大于目标尺寸时才执行缩小操作,不会放大原本就小于目标尺寸的图片,如果你需要所有图片都缩放至适配目标范围,直接删掉>即可。
方案2:强制拉伸到刚好8.5×11英寸(不保留原比例)
如果你不需要保留原图纵横比,要所有输出图片刚好是8.5×11英寸,将resize参数的后缀换成!即可:
convert "folder\*.png" -format jpg -resize 612x792! -quality 70 -strip -density 72 -interlace Plane -set filename:fname %t-1 +adjoin "C:\Users\%USERNAME%\Desktop\New folder\%[filename:fname].jpg"
更换DPI的调整方法
如果是印刷场景常用的300DPI,对应尺寸为2550×3300像素,只需要修改两个参数即可:
- 把
resize参数改成2550x3300(后缀根据你的需求保留>或者!) - 把
-density 72改成-density 300
内容的提问来源于stack exchange,提问作者GTS Joe
相关产品推荐
相关产品推荐

