在ImageMagick中将图像调整为特定的高度值?


27

我一直在寻找这个问题,但是找不到一个易于实现的解决方案。

目前,我正在开发一个处理全景图的应用程序。由于它们是从批量缝合过程中出来的,因此尺寸平均为18000x4000。使用ImageMagick,如何在保持纵横比的同时将这些图像缩小到特定的高度值?

根据手册,convert在保持相同的宽高比的同时,操作需要同时调整高度和宽度。我想要在现有的调整大小脚本函数中放入600和1000,并同时具有常规的可视图像和缩小的图像。


IIRC它使用较小的尺寸作为尺寸调整操作的基础,即,如果指定类似20000x600的尺寸,它将使用600高度作为基础来计算转换后的宽度,从而保持宽高比。我说清楚了吗?
devius

是否需要ImageMagick?Phatch命令可以编写脚本,“ fit”命令完全可以满足您的需求。 photobatch.wikidot.com/action-fit
Veazer 2012年

Answers:


37

根据ImageMagick的文档,我建议使用-geometry x600,而x600意味着新图像的高度为600 px,且纵横比与旧图像相同。


对于单个图像,您可以运行:

convert input.png -geometry x600 output.png

如果您希望一次运行转换一个文件夹的所有图像,请切换到该文件夹(例如cd ~/Pictures/panoramas/)并使用

mogrify -geometry x600 *.png

但是要小心,因为它会覆盖原始图像文件。为了避免这种情况,您可以

  1. 创建一个新文件夹(mkdir ~/Pictures/panoramas/small
  2. 将图像复制到该文件夹​​(cp ~/Pictures/panoramas/*.png ~/Pictures/panoramas/small),然后
  3. 编辑此新文件夹(cd ~/Pictures/panoramas/small && mogrify -geometry x600 *.png)中的图像。

1

调整文件夹中所有文件的大小,可以使用类似

迁移-调整大小800x1094!* jpg#保持图像宽高比

---适当改变大小和扩展名


1
这不会保持源图像的长宽比
Rob

1
如果您要保持宽高比,请@Rob留下“!” 出来。
埃里克

谢谢@Erick,它已经很老了,但是我可能指出这个答案不能正确回答,因为OP希望保持宽高比。:D
罗布
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.