您可以使用 ImageMagick 的fx
函数来计算在进行平铺之前需要将底部切掉多少。例如,mod 运算符会告诉您当您将图像高度除以平铺高度 (300) 时剩下的内容,如下所示:
# First create an arbitrary image 929 px high
convert -size 480x929 xc:blue initial.png
# Now see what we need to chop off
convert initial.png -format "%[fx:h%300]" info:
29
因此,我们需要使用 this 作为参数从底部移除 29 个像素,-chop
如果我们指定 ,它将从底部切掉-gravity south
。现在,这一切都可以在一个命令中完成,如下所示:
convert initial.png \
-gravity south \
-chop 0x$(convert initial.png -format "%[fx:h%300]" info:) \
-crop 480x300 +repage tile.png
这将为您提供 3 个每个 300 像素高的图块:
identify tile*
tile-0.png PNG 480x300 480x300+0+0 8-bit sRGB 2c 286B 0.000u 0:00.000
tile-1.png[1] PNG 480x300 480x300+0+0 8-bit sRGB 2c 286B 0.000u 0:00.000
tile-2.png[2] PNG 480x300 480x300+0+0 8-bit sRGB 2c 286B 0.000u 0:00.000