Imagemagick转换裁剪并调整大小

时间:2015-09-08 19:47:25

标签: resize imagemagick crop


我在不同分辨率上有超过1000张图像(例如1234x2122,4400x5212等),我想将它们全部转换为固定的100x100尺寸,所以。

  1. 首先我需要调整保持比例的图像大小,并获得100xA或Ax100,其中A> 100(取决于图像的宽度和高度,对于某些图像宽度>高度,以及某些图像的高度>宽度)。

  2. 将此图像从中心裁剪为100x100

  3. 是否有一个简单的转换命令,我可以用于我的所有图像?

2 个答案:

答案 0 :(得分:35)

您可以在^操作中使用area-fill-resizegeometry modifier来统一缩小比例。要裁剪中心,-extent -gravity Center将有效。

convert input.jpg -resize 100x100^ \
                  -gravity Center  \
                  -extent 100x100  \
        output.jpg

<强>更新

正如Mark Setchell在评论中指出的那样,可以利用mogrify实用程序批量转换项目。

mogrify -path ./path/to/write/results/ \
        -resize 100x100^ \
        -gravity Center  \
        -extent 100x100  \
        ./path/to/source/files/*
  

reminder 提醒: 除非您设置-path参数,否则Mogrify将覆盖包含结果图像的原始文件。

答案 1 :(得分:2)

为了保持纵横比并且不填充任何东西(范围),而是从较长的边缘裁剪,这是你可以做的

convert input.jpg -resize 100x100^ \
                  -gravity Center  \
                  -crop 100x100+0+0 +repage  \
        output.jpg

如果您愿意,可以选择从一侧裁剪更多