我在不同分辨率上有超过1000张图像(例如1234x2122,4400x5212等),我想将它们全部转换为固定的100x100尺寸,所以。
首先我需要调整保持比例的图像大小,并获得100xA或Ax100,其中A> 100(取决于图像的宽度和高度,对于某些图像宽度>高度,以及某些图像的高度>宽度)。
将此图像从中心裁剪为100x100
是否有一个简单的转换命令,我可以用于我的所有图像?
答案 0 :(得分:35)
您可以在^
操作中使用area-fill(-resize
)geometry 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/*
提醒: 除非您设置
-path
参数,否则Mogrify将覆盖包含结果图像的原始文件。
答案 1 :(得分:2)
为了保持纵横比并且不填充任何东西(范围),而是从较长的边缘裁剪,这是你可以做的
convert input.jpg -resize 100x100^ \
-gravity Center \
-crop 100x100+0+0 +repage \
output.jpg
如果您愿意,可以选择从一侧裁剪更多