ImageMagick调整大小 - 设置横向和纵向图像的宽度

JWK*_*JWK 5 imagemagick imagemagick-convert

我正在尝试将图像大小调整为给定宽度,高度按比例调整 - 无论图像是横向还是纵向.

我有两个图像我测试了ImageMagick convert -resize命令和我读过的内容,我希望以下内容适用于任何类型的图像:

convert source.jpg -resize 200 out.jpg

问题是,它没有.这是我的结果:

  • 源图像1: ,landscape,3264?×?2448调整大小以200?×?150==> WORKS
  • 源图像2:portrait,, 3240?×?4320调整为150?×?200==> 失败

现在,我知道我可以通过预先读取源图像尺寸并对命令进行调整来修复此问题(例如,使用x200 for portrait似乎将宽度正确设置为200)但我不禁认为必须有让ImageMagick处理这个的方法.

我阅读了文档并搜索了答案,但似乎无法解决这个问题.任何帮助是极大的赞赏.

编辑:

我尝试了以下变化,但得到了相同的错误结果:

convert source.jpg -resize 200x out.jpg

FIX:

convert source.jpg -auto-orient -resize 200 out.jpg

dle*_*tra 5

正如JWK在答复的评论中所讨论的那样:

图像似乎是风景而不是肖像.某些显示图像的应用程序从图像的exif配置文件中读取额外信息以确定方向.这导致了一些混乱,因为ImageMagick不会自动使用exif配置文件中的信息.这可以通过自动定位选项强制执行.该命令应更改为:

convert source.jpg -auto-orient -resize 200x out.jpg
Run Code Online (Sandbox Code Playgroud)

200x也可以写成200,但如果要调整宽度或高度,使用200x或x200会更好.