ImageMagick: Как объединить несколько изображений из нескольких каталогов с помощью Montage с разными аргументами?
У меня есть несколько изображений, распределенных по разным каталогам.
Каждая папка имеет разное количество заголовков и боковых панелей. По этой причине, обходной путь должен выполнить функцию монтажа из программного обеспечения imagemagick с определенными аргументами для каждого временного составного изображения.
Вот простой пример:
cd /home/archy && montage figure1/*.png -tile 2x -geometry +1+1 figure1.png
cd /home/archy && montage figure2/*.png -tile 1x -geometry +1+1 figure2.png
Посмотрите, что первое временное изображение представляет собой композицию из двух столбцов изображений. С другой стороны, второе временное изображение представляет собой композицию из одного столбца изображений. Наконец, мне нужно окончательное изображение, составленное из этих двух временных изображений, созданных ранее.
cd /home/archy && montage *.png -tile 1x -geometry +1+1 total.png
В реальной ситуации мне нужно создать большое количество временных изображений, чтобы создать только финальное. Было бы здорово избежать этого обходного пути, чтобы сэкономить время на исчисление и хранение системы.
Можно ли объединить эти три команды в одну уникальную? Спасибо
1 ответ
Мне не очень понятно, где находятся все ваши файлы, но я думаю, что смогу вам помочь. Вместо записи в файл на диске вы можете сделать любую команду ImageMagick записать в поток MIFF ("Magick Image File Format"), который сохранит всю информацию, которую вы могли бы записать в файл.
Таким образом, вы можете сделать это без записи на диск:
montage SOMESTUFF SOMEHOW miff:- | convert miff:- OTHERSTUFF result.png
В вашем конкретном случае, я думаю, вы хотите:
cd /home/archy
{
montage figure1/*.png -tile 2x -geometry +1+1 miff:-
montage figure2/*.png -tile 1x -geometry +1+1 miff:-
} | montage miff:- -tile 1x -geometry +1+1 result.png
Итак, вы запускаете свой первый montage
так же, как это было когда-либо и писать это, а затем результат вашего второго montage
в одном сложном утверждении, в третьем montage
Команда, которая получает первые два montage
выводит и монтирует их в конечный результат!!!
Я знаю, что имею в виду, даже если никто не знает!
Кстати, если вы хотите запустить его как однострочник, вам понадобится дополнительная точка с запятой перед закрывающей скобкой и всегда пробел с обеих сторон обеих скобок:
{ montage figure1/*.png -tile 2x -geometry +1+1 miff:- ; montage figure2/*.png -tile 1x -geometry +1+1 miff:- ; } | montage miff:- -tile 1x -geometry +1+1 result.png