我在透明背景上有很多較小圖像(非觸摸)組成的大圖像。就像一個spritesheet,但精靈的大小並不完全相同,也沒有放在網格上。用imagemagick分割圖像
我可以使用ImageMagick將圖像分成更小的圖像嗎?
因此,舉例來說,這樣的:(其中#
=彩色像素)
# ##
# #
# #
###
變爲這些
#
#
##
#
#
#
###
我在透明背景上有很多較小圖像(非觸摸)組成的大圖像。就像一個spritesheet,但精靈的大小並不完全相同,也沒有放在網格上。用imagemagick分割圖像
我可以使用ImageMagick將圖像分成更小的圖像嗎?
因此,舉例來說,這樣的:(其中#
=彩色像素)
# ##
# #
# #
###
變爲這些
#
#
##
#
#
#
###
使用三個crop commands,一個用於每個部分:
convert mosaic -crop 1x2+0+0 part1
convert mosaic -crop 2x3+2+0 part2
convert mosaic -crop 3x2+0+2 part3
你可以在一個命令中做到這一點,並非常有效地做到這一點。例如,這個命令:
time convert \ very-very-large.png \ -quality 85 \ -write mpr:mpc:label \ +delete \ mpr:mpc:label -crop '3000x2001+0+491' -resize '170x116!>' -write pic1.png +delete \ mpr:mpc:label -crop '2981x2883+8+0' -resize '75x75!>' -write pic2.png +delete \ mpr:mpc:label -crop '1100x1983+0+0' -resize '160x160!>' -write pic3.png +delete \ mpr:mpc:label -crop '2000x2883+0+0' -resize '1024x960!>' -write pic4.png +delete \ mpr:mpc:label -crop '1000x2883+0+0' -resize '190x188!>' -write pic5.png +delete \ mpr:mpc:label -crop '3000x2000+0+0' -resize '2048x2047!>' -write pic6.png +delete \ mpr:mpc:label -crop '3000x2883+0+0' -resize '595x421!>' -write pic7.png +delete \ mpr:mpc:label -crop '3000x2883+0+0' -resize '3000x2883!>' -write pic8.png
將從大的8個不同的子圖像中剪切並保存(以不同的名字)。
如果您不想查找自動分割圖像的座標,可以嘗試ImageMagick example scripts area中的segment_image腳本。它使用ImageMagick命令來執行簡單的自動分割。
該腳本的一些背景和使用說明可用here。
我不知道如何在ImageMagick中做到這一點,但看看紋理地圖集。您的問題的複雜程度取決於您是否希望即時消息檢測一致性區域,或者您是否已有這些信息(即預定義的掩碼)。 – appas