我正在尝试将图像调整为给定宽度,按比例调整高度 - 无论图像是横向还是纵向。
我有两张图像我测试了 ImageMagickconvert -resize
根据我所读到的命令,我希望以下内容适用于任何类型的图像:
convert source.jpg -resize 200 out.jpg
问题是,事实并非如此。这是我的结果:
- 源图 1:
landscape
, 3264 × 2448
,调整大小为200 × 150
==> WORKS
- 源图 2:
portrait
, 3240 × 4320
,调整大小为150 × 200
==> FAIL
现在,我知道我可以通过预先读取源图像尺寸并调整命令来解决此问题(例如,使用 x200 进行肖像似乎将宽度正确设置为 200),但我忍不住认为必须有一个让 ImageMagick 处理这个问题的方法。
我阅读了文档并用谷歌搜索了答案,但似乎无法解决这个问题。任何帮助是极大的赞赏。
EDIT:
我尝试了以下变体,但得到了相同的错误结果:
convert source.jpg -resize 200x out.jpg
FIX:
convert source.jpg -auto-orient -resize 200 out.jpg
正如 JWK 的答案评论中所讨论的:
这些图像似乎是风景而不是肖像。某些显示图像的应用程序会从图像的 exif 配置文件中读取额外信息来确定方向。这导致了一些混乱,因为 ImageMagick 不会自动使用 exif 配置文件中的信息。这可以通过自动定向选项强制执行。该命令应更改为:
convert source.jpg -auto-orient -resize 200x out.jpg
200x 也可以写为 200,但如果应调整宽度或高度大小,则使用 200x 或 x200 显示效果更好。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)