2010-05-17 2 views
43

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

У меня есть куча (ну, девять) фрагментов 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/монтаж на «клей» или присоединиться к ним все вместе, чтобы сделать единый когерентный образ? Я не хочу изменять их вообще, поэтому, я думаю, окончательное изображение должно быть 660x525.

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

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

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

Возможно также связанное: [удалить дополнительное пространство для плитки из композитного изображения монтажа (ImageMagick)? - Unix и Linux] (http://unix.stackexchange.com/questions/4046/remove-extra-tilespace-from-a-montage-imagemagick-composite-image/63463#63463) – sdaau

ответ

35

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

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 
+0

Я предположил, что '660x' был конечный размер (3 изображения по 220 пикселей каждый). Из чтения [примера] (http://www.imagemagick.org/Usage/montage/#geometry_size) я думаю, что флаг '-geometry' изменяет размер каждого изображения на один размер (таким образом, используя' -geometry 220x' будет поддерживать исходный размер в этом случае). Правильно ли это? – Hendy

23

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

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

Работал отлично! – max

+0

У меня установлена ​​ImageMagick на Windows, но я не вижу файл montage.exe. –

+0

Обязательно проверьте параметр установки ImageMagick «Установить устаревшие утилиты (например, конвертировать)». (протестировано с версией 7.0.7) – user2704917

Смежные вопросы