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

问题描述:

我试图将图像调整为给定宽度,高度按比例调整 - 无论图像是横向还是纵向。ImageMagick调整大小 - 设置横向和纵向图像的宽度

我有两个图像我测试用,从我看过的ImageMagick convert -resize命令,我希望下面为任何类型的图像的工作:

convert source.jpg -resize 200 out.jpg

的问题是,它不“T。这里是我的结果:

  • 源图像1:landscape3264 × 2448,调整大小以200 × 150 ==>WORKS
  • 源图像2:portrait3240 × 4320,调整大小以150 × 200 ==>FAIL

现在,我知道我可以通过预先读取源图像尺寸并对命令进行调整来解决此问题(例如,使用x200进行纵向设置似乎已设置宽度正确到200),但我不禁想到,必须有一种方法让ImageMagick处理这个问题。

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

编辑:

我曾尝试以下变化,但得到相同的结果不正确:

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,但使用200倍或X200显示更好,如果宽度或高度应被调整大小。

+0

感谢您的“ - 自动定位”选项,它使我的一天! :) – Psddp 2016-02-26 17:12:57

我这解决了。原来,我的肖像源文件的图像信息有点搞砸了。

我运行了identify portrait_source.jpg命令,发现它的宽度和高度都是错误的(4320 x 3240而不是3240 × 4320)。所以基本上,ImageMagick认为它是在面向肖像的文件中查看横向文件。所有其他程序(OSX Finder,Preview)都以纵向显示图像。

只需在预览中打开图像并保存即可修复图像信息,然后调整大小按预期工作。

因此,如果遇到类似于我的问题,请务必检查源图像上的图像信息。我不知道为什么信息是错的。我用了数码相机拍摄的照片。

+0

您是否在加载图像后尝试添加-auto-orient选项?这可能是其他程序正在做的事情。 – dlemstra 2014-08-29 06:54:59

+0

你说得对,在'-resize'选项之前加上'-auto-orient'会产生正确的结果: 'convert source.jpg -auto-orient -resize 200 out.jpg' 如果你想添加一个答案,总结了这个问题并描述了使用'-auto-orient'来修复它,我会接受这个正确的答案。谢谢! – JWK 2014-08-29 12:32:13