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

5
我试图将图片调整到给定的宽度,并按比例调整高度 - 无论图片是横向还是纵向。我有两张图片来测试ImageMagick的convert -resize命令,根据我所读的,我期望以下命令可以适用于任何类型的图片:
convert source.jpg -resize 200 out.jpg
但问题是它不起作用。以下是我的结果:
- 源图片1: 横向,3264 × 2448,缩放为200 × 150 => 成功 - 源图片2: 纵向,3240 × 4320,缩放为150 × 200 => 失败
现在,我知道我可以通过预先读取源图像尺寸并对命令进行调整来解决这个问题(例如,使用x200对纵向设置宽度似乎可以正确设置宽度),但我不能不想让ImageMagick处理这个问题。
我阅读了文档并搜索答案,但似乎无法解决这个问题。非常感谢您的帮助。
编辑:
我尝试了以下变化,但得到相同的错误结果:
convert source.jpg -resize 200x out.jpg
修复:
convert source.jpg -auto-orient -resize 200 out.jpg
2个回答

5

正如JWK的回答评论中所讨论的:

这些图片似乎是横向而不是纵向的。一些显示图像的应用程序会从图像的exif配置文件中读取额外信息以确定方向。这导致了一些混淆,因为ImageMagick不会自动使用exif配置文件中的信息。可以通过auto-orient选项来强制执行此操作。命令应更改为:

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

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

感谢“-auto-orient”选项,它让我的一天变得更美好了! :) - Psddp

0

我已经解决了这个问题。原来我的头像源文件图像信息出现了一些问题。

我运行了 identify portrait_source.jpg 命令,发现它的宽度和高度不正确( 4320 x 3240 而不是 3240 × 4320)。基本上,ImageMagick 认为它在查看一个横向文件,而实际上它是一个纵向文件。所有其他程序(OSX Finder、预览)都以纵向方向显示图像。

只需在预览中打开图像并保存即可修复图像信息,之后调整大小就可以正常工作了。

所以,如果你遇到类似我的问题,请确保检查源图像的图像信息。我不知道为什么一开始信息是错误的。我使用的是数码相机拍摄的照片。


你尝试过在加载图像后添加-auto-orient选项吗?这可能就是其他程序所做的。 - dlemstra
你说得对,在-resize选项之前添加-auto-orient可以得到正确的结果: convert source.jpg -auto-orient -resize 200 out.jpg 如果你想添加一个回答来总结问题并描述如何使用-auto-orient来解决它,我会接受它作为正确答案。谢谢! - JWK

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接