Подтвердить что ты не робот

Склеивание изображений плитки вместе с помощью команды imagemagick montage без изменения размера

Похоже, что это может быть довольно распространенный вопрос, поэтому я собираюсь спросить его, используя столько ключевых слов, сколько я могу придумать!

У меня есть куча (ну, девять) tile jpegs, со стандартными именами плит. Каждый jpeg имеет размер 220x175 пикселей:

(top row)
tile_1_0_0.jpg
tile_1_1_0.jpg
tile_1_2_0.jpg
(middle row)
tile_1_0_1.jpg
tile_1_1_1.jpg
tile_1_2_1.jpg
(bottom row)
tile_1_0_2.jpg
tile_1_1_2.jpg
tile_1_2_2.jpg

Как я могу использовать imagemagick/montage для "склеивания" или объединить их все вместе, чтобы создать единое целое изображение? Я не хочу изменять их вообще, поэтому я думаю, что окончательное изображение должно быть 660x525.

Это будет монтаж без кадрирования, затенения, границы и т.д. - всего девять оригинальных изображений, склеенных друг с другом, чтобы сделать один jpeg.

Я знаю, что это должно быть что-то в этом роде, но я изо всех сил пытаюсь получить порядок и размеры:

montage +frame +shadow +label -tile 3x3 -geometry <options> *.jpg joined.jpg
4b9b3361

Ответ 1

Я искал что-то похожее и оказался здесь (я думаю, что ваше "как можно больше ключевых слов" работало). Здесь то, что я придумал, сработало для меня. (геометрия и плитка скорректированы для ваших нужд)

montage -border 0 -geometry 660x -tile 3x3 tile* final.jpg

Файлы добавляются в плитки по горизонтали, поэтому для -tile 4x2 это будет:

1 2 3 4
5 6 7 8

Цифры - это относительные позиции имен файлов в списке аргументов.

Насколько я могу судить, tile* будет расширяться в алфавитном порядке, поэтому вы должны либо указать свои имена файлов вручную, либо переименовать их так, чтобы они отсортировались соответствующим образом, например:

# top row
tile_r0_c0.jpg
tile_r0_c1.jpg
tile_r0_c2.jpg
# middle row
tile_r1_c0.jpg
tile_r1_c1.jpg
tile_r1_c2.jpg
# bottom row
tile_r2_c0.jpg
tile_r2_c1.jpg
tile_r2_c2.jpg

Ответ 2

Решение Dave не сработало для меня, поэтому я нашел лучший ответ здесь. Попробуйте следующее:

montage -mode concatenate -tile 3x3 tile*.jpg result.jpg

он также работает без второго "3"

montage -mode concatenate -tile 3x tile*.jpg result.jpg

Полная строка для пользователей Windows:

"C:\Program Files\ImageMagick-6.8.0-Q16\montage.exe" -mode concatenate -tile 3x tile*.jpg result.jpg

(измените "6.8.0-Q16" на свою версию ImageMagick, конечно)

Ответ 3

Я лично использую эту минимальную команду для таких задач:

montage tile*.jpg -tile 3x3 -geometry +0+0 output.jpg

geometry +0+0 не добавит границы и сохранит исходный размер каждого изображения (очень рекомендуемая опция).