使用ImageMagick合并瓦片以创建图像。

3
我使用ImageMagick将图片分割成瓦片,使用以下命令:
convert -crop 100x100 source.png tile%d.png

这将创建一堆平铺图像。有没有办法从这些平铺图像中重新创建原始图像?
我正在处理不同源.png文件(具有不同的尺寸),因此我并不总是知道每个图像会有多少个平铺图像(即有多少行/列)。
1个回答

2

我认为你不能使用tile%d.png来完成此操作,因为你不知道有多少行和列。如果图像大小不是100的倍数,则会得到不同大小的瓷砖。然后,您可以通过检查大小来查找非“完整大小”的瓷砖文件。同样,如果原始大小为1000x2000,则会出现问题。

我认为你需要在文件名中包含行和列。您将需要IM v6.4.8-4及更高版本。

convert source.png -crop 100x100 -set filename:tile \
    "%[fx:page.y/100+1000]_%[fx:page.x/100+1000]" \
    +repage +adjoin "file_tiles_%[filename:tile].png"

魔法是 fx:page.x/100+1000。其中100需要与x的裁剪大小匹配,而1000用于将文件排列到9999行和列(因此最大值为8999),或者用于省去从数字中减去1000的计算,数字可以为899。
如果您需要tile%d.png,您可以创建两个集合。当您要恢复原始状态时,需要执行以下操作:
montage -mode concatenate -tile 4x file_tiles_*.png rejoined.png

您需要确定列的数量。这可以从第1000行中最后一列进行解析...

ls -1 file_tiles_1000* | tail -1 | sed 's/.*_//g; s/\.png//g; s/^.000*//g'

§ 平铺裁剪


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接