Склейка мозаичных изображений с помощью команды монтажа imagemagick без изменения - PullRequest
43 голосов
/ 18 мая 2010

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

У меня есть куча (ну, девять) плиток в формате JPEG со стандартными именами плиток. Каждый 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

Ответы [ 3 ]

35 голосов
/ 27 июня 2010

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

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
27 голосов
/ 03 января 2013

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

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, конечно)

0 голосов
/ 05 декабря 2018

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...