如何使用 Imagemagick 转换缩放一次,然后裁剪多个区域并将每个裁剪保存在单独的文件中?

How do I use Imagemagick's convert to scale once and then crop multiple areas and save each crop in a separate file?

我有一张 4K 图片,我想将其调整为 12K 图片 (×3)。

然后我想将 12K 图像裁剪成 9 个单独的 4K 图像。

我知道如何运行命令创建这些裁剪之一并重复该命令 9 次(位置不同)。

convert input.jpg -resize 11520x6480 \
                 -crop 3840x2160+0+0 \
        output-top-left.jpg

但是调整大小几乎需要永远,所以我希望我可以调整一次大小然后一次性裁剪 9 次。那么...如何一次裁剪所有 9 个区域?

您可以使用平铺裁剪功能将 Imagemagick 中的图像裁剪成 9 部分(3x3 阵列)。参见 https://legacy.imagemagick.org/Usage/crop/#crop_tile

convert input.jpg -resize 300% -crop "3x3@" output.jpg

从中你会得到 output-0.jpg, output-1.jpg ... output-8.jpg

如果你想裁剪不同大小的区域,那么你可以这样做:

convert input.jpg -resize 300% -write mpr:img \
\( mpr:img -crop W1xH1+X1+Y1 +repage +write output-1.jpg \) \
\( mpr:img -crop W2xH2+X2+Y2 +repage +write output-2.jpg \) \
...
\( mpr:img -crop W9xH9+X9+Y9 +repage +write output-9.jpg \) \
null:

如果 Windows 从 ( ... ) 中删除 \ 并将行尾 \s 更改为 ^s

如果在 Imagemagick 7 上使用 magick 代替 convert