Утилита magick является частью пакета ImageMagick. Подробности по установке ImageMagick, в том числе какие зависимости необходимо установить для поддержки максимального количества форматов, а также описание структуры команды, примеры использования и всех опций смотрите в статье: Руководство по ImageMagick: установка, использование и решение проблем.
Рассмотрим как сделать наложение картинки на картинку.
Команда наложения одного изображения на другое состоит из трёх основных частей:
- Имя начального изображения, которое будет выполнять роль фона.
- Имя второго изображения, которое будет наложено на первое. Опции Геометрии, а также опция -composite. Данный пункт может быть повторён множество раз, для наложения нескольких изображений на одно.
- Имя выходного файла.
В следующем примере на изображение IMAGE.jpg будет наложено изображение IMAGE1.jpg, ширина которого будет равна 400 пикселям, это изображение будет отодвинуто от левого края на 50 пикселей и от верха на 10 пикселей, новое изображение будет сохранено в файл test27.jpg:
magick IMAGE.jpg IMAGE1.jpg -geometry 400x300+50+10 -composite test27.jpg
Обратите внимание, что наложенное изображение будет иметь ширину 400 пикселей, а высота будет подобрана автоматически для сохранения исходных пропорций картинки, подробности смотрите в разделе Геометрия изображений.
Если вы хотите разместить изображение по центру, в одном из углов или на середине одной из сторон, то вместо указания смещения вы можете использовать опцию -gravity.
С помощью параметра -gravity вы можете изменить начало координат, например:
magick IMAGE.jpg IMAGE1.jpg -gravity North -geometry 400x300+0+0 -composite test27.jpg magick IMAGE.jpg IMAGE1.jpg -gravity South -geometry 400x300+0+0 -composite test27.jpg magick IMAGE.jpg IMAGE1.jpg -gravity SouthWest -geometry 400x300+0+0 -composite test27.jpg
Подробности смотрите в разделе Опция -gravity определяет начало координат для Сдвига
Аналогичная команда, в которой на изображение IMAGE.jpg наложены картинки с IMAGE1.jpg по IMAGE6.jpg:
magick IMAGE.jpg IMAGE1.jpg -geometry 400x300+50+10 -composite IMAGE2.jpg -geometry 330x230+225+210 -composite IMAGE3.jpg -geometry 350x300+475+260 -composite IMAGE4.jpg -geometry 400x300+25+410 -composite IMAGE5.jpg -geometry 400x300+625+10 -composite IMAGE6.jpg -geometry 350x300+600+450 -composite test28.jpg
Обратите внимание, что опция -composite применяется после каждого изображения!
Чтобы лучше понять логику, к предыдущей команде добавлены скобки, которые объединяют изображение и его настройки, по своему результату эта команда не отличается от предыдущей:
magick IMAGE.jpg \( IMAGE1.jpg -geometry 400x300+50+10 \) -composite \( IMAGE2.jpg -geometry 330x230+225+210 \) -composite \( IMAGE3.jpg -geometry 350x300+475+260 \) -composite \( IMAGE4.jpg -geometry 400x300+25+410 \) -composite \( IMAGE5.jpg -geometry 400x300+625+10 \) -composite \( IMAGE6.jpg -geometry 350x300+600+450 \) -composite b.jpg
Поскольку высота подбирается автоматически, то её можно не указывать:
magick IMAGE.jpg IMAGE1.jpg -geometry 400x+50+10 -composite IMAGE2.jpg -geometry 330x+225+210 -composite IMAGE3.jpg -geometry 350x+475+260 -composite IMAGE4.jpg -geometry 400x+25+410 -composite IMAGE5.jpg -geometry 400x+625+10 -composite IMAGE6.jpg -geometry 350x+600+450 -composite b.jpg
В качестве фона вместо фотографии можно указать цвет фона, для этого используйте набор опций -size РАЗМЕР canvas:ЦВЕТ. К примеру, в следующей команде изображения накладываются на фон красного цвета размером 1000×750:
magick -size 1000x750 canvas:red IMAGE1.jpg -geometry 400x300+50+10 -composite IMAGE2.jpg -geometry 330x230+225+210 -composite IMAGE3.jpg -geometry 350x300+475+260 -composite IMAGE4.jpg -geometry 400x300+25+410 -composite IMAGE5.jpg -geometry 400x300+625+10 -composite IMAGE6.jpg -geometry 350x300+600+450 -composite test29.jpg
Как объединить фотографии без наложения
Опция -append соединяет текущие изображения по вертикали или по горизонтали c +append.
Этот параметр создаёт одно более длинное изображение путём объединения всех текущих изображений в последовательности сверху вниз.
magick IMAGE.jpg IMAGE1.jpg -append test31.jpg
Используйте +append, чтобы складывать изображения слева направо.
magick IMAGE.jpg IMAGE1.jpg +append test31.jpg
Если они имеют разную ширину, более узкие изображения дополняются текущей настройкой цвета фона, а их положение относительно друг друга может контролироваться текущей настройкой -gravity.
Цвет фона можно задать с помощью опции -background ЦВЕТ. Например:
magick IMAGE.jpg -background Violet IMAGE1.jpg -append test30.jpg
Вы также можете использовать опцию -scale для привидения изображений к одинаковому размеру:
magick IMAGE.jpg -scale 1000 IMAGE1.jpg -scale 1000 -append test30.jpg
Предыдущая команда приведёт оба изображения к ширине 1000 пикселей и расположит их друг над другом.
Аналогичная команда, но она вместо расположения изображений друг над другом поместит их слева направо (по горизонтали):
magick IMAGE.jpg -scale 1000 IMAGE1.jpg -scale 1000 +append test30.jpg
Для более гибких опций, включая возможность добавления пространства между изображениями, используйте -smush.
Опция -smush СМЕЩЕНИЕ добавляет последовательность изображений вместе, игнорируя прозрачность.
-smush — это более гибкая версия -append, соединяющая изображения в последовательности сверху вниз (-smush) или слева направо (+smush) с промежутком между изображениями в соответствии с указанным смещением.
Если смещение отрицательное, изображения будут перекрываться на эту величину.
-smush уважает -gravity. Любое пустое пространство будет заполнено фоновым цветом.
Для изображений с нулевым смещением и прозрачных изображений непрозрачные части двух изображений будут максимально близко выровнены без перекрытия.
Пример команды с опцией -smush (приводит изображения к одинаковой ширине 1000 пикселей и помещает их друг над другом, разделив пространством в 100 пикселей):
magick IMAGE.jpg -scale 1000 -background Violet IMAGE1.jpg -scale 1000 -smush 100 test31.jpg
Связанные статьи:
- Руководство по ImageMagick: установка, использование и решение проблем (100%)
- Ошибки при использовании magick (convert) из пакета ImageMagick и их устранение (100%)
- Конвертация изображений в любые форматы в Linux (100%)
- Модификация изображений в командной строке Linux (100%)
- Как добавить текст на изображения в ImageMagick (100%)
- Что делать, если в Linux не видны некоторые символы Unicode (РЕШЕНО) (RANDOM - 27.1%)