2011-11-25 438 views
3

我在透明背景上有很多較小圖像(非觸摸)組成的大圖像。就像一個spritesheet,但精靈的大小並不完全相同,也沒有放在網格上。用imagemagick分割圖像

我可以使用ImageMagick將圖像分成更小的圖像嗎?

因此,舉例來說,這樣的:(其中# =彩色像素)

# ## 
    # # 
    # # 
    ### 

變爲這些

# 
# 

## 
# 
# 

    # 
### 
+0

我不知道如何在ImageMagick中做到這一點,但看看紋理地圖集。您的問題的複雜程度取決於您是否希望即時消息檢測一致性區域,或者您是否已有這些信息(即預定義的掩碼)。 – appas

回答

0

使用三個crop commands,一個用於每個部分:

convert mosaic -crop 1x2+0+0 part1 
convert mosaic -crop 2x3+2+0 part2 
convert mosaic -crop 3x2+0+2 part3 
4

你可以在一個命令中做到這一點,並非常有效地做到這一點。例如,這個命令:

 
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個不同的子圖像中剪切並保存(以不同的名字)。