使用imagemagick组合切片以创建图像

时间:2013-04-03 03:05:06

标签: imagemagick imagemagick-convert

我使用imageMagick将图像分割成图块。我使用以下命令:

convert -crop 100x100 source.png tile%d.png

这会创建一堆平铺图像。有没有办法从瓷砖中重新创建原始图像?

我正在为不同的source.png文件(不同尺寸)执行此操作,因此我并不总是知道每个图像将有多少个图块(即多少行/列)。

1 个答案:

答案 0 :(得分: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+1000100需要与作物大小相匹配 用于x和1000是使文件的所有行最多为9999(因此最大为8999 行和列)或899,如果你不想做数学从中删除1000 号。

如果您需要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'

§ Tile Cropping