Разделение изображения с помощью imagemagick - PullRequest
3 голосов
/ 25 ноября 2011

У меня большое изображение, состоящее из множества маленьких изображений (не трогательных) на прозрачном фоне. Как и таблица спрайтов, но спрайты не имеют одинакового размера и не размещены на сетке.

Можно ли использовать ImageMagick, чтобы разделить изображение на более мелкие?

Так, например, это: (где # = цветной пиксель)

  #   ##
  #   # 
    # # 
  ###   

становится этим

#
#

##
#
#

  #
###

Ответы [ 3 ]

4 голосов
/ 13 августа 2012

Вы можете сделать это одной командой и сделать это очень эффективно.Например, эта команда:

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 разных подизображений из большого.

0 голосов
/ 08 февраля 2015

Если вы не хотите искать координаты для автоматического сегментирования изображения, вы можете попробовать сценарий сегмент_изображения из области примера сценариев ImageMagick .Он использует команды ImageMagick для простой автосегментации.

Немного справочных и инструкций по использованию этого скрипта. здесь .

0 голосов
/ 21 января 2012

Используйте три команды обрезки , по одной для каждого раздела:

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