为何ImageMagick对300与72DPI图片输出相同打印尺寸?
不用
-verbose获取图片正确打印尺寸的方法 你遇到的问题是因为之前的命令硬编码了300DPI进行计算,没有读取图片自身的分辨率元数据,所以两张不同DPI的图片得到了相同结果。要不用-verbose获取正确打印尺寸,只需在命令中引用图片自身的水平/垂直分辨率变量即可:
正确命令示例
magick identify -format "%[fx:w/%x] by %[fx:h/%y] inches" your-image.png
命令说明
%x:读取图片的**水平分辨率(DPI)**元数据%y:读取图片的**垂直分辨率(DPI)**元数据fx:w/%x:用图片像素宽度除以水平DPI,得到实际打印宽度(英寸)fx:h/%y:用图片像素高度除以垂直DPI,得到实际打印高度(英寸)
验证结果
对于你提到的两张图片:
- 300DPI的图:
2550/300=8.5,3300/300=11,返回8.5 by 11 inches - 72DPI的图:
2550/72≈35.4167,3300/72≈45.8333,返回35.4167 by 45.8333 inches
避免报错注意事项
之前出现的identify: Expected operand at 'x'报错,大概率是命令格式错误导致的:
- 确保
%x、%y的写法正确,不要漏写百分号 - 确保
fx表达式里的运算符(/)前后没有语法错误 - 如果图片没有分辨率元数据,ImageMagick会默认用72DPI计算,这是行业通用默认值
内容的提问来源于stack exchange,提问作者user22996855
相关产品推荐
相关产品推荐

