4

У меня есть большое количество плиток со следующим соглашением об именах:

A-x-y.jpg

где

0<=x<=16 &
0<=y<=14

Теперь я знаю, что мы можем использовать инструмент Montage в ImageMagick, чтобы объединить их в одно целое изображение.

В идеале я мог бы использовать следующую командную строку:

montage *.jpg -geometry +0+0 -tile 17x15 all.jpg

но мои файлы таковы, что A-0-0.jpg находится прямо над A-0-1.jpg, который выше A-0-2.jpg, а A-1-0.jpg справа от A-0 -0.jpg.

Поэтому, когда я использую приведенную выше команду, порядок неправильный. У меня есть текстовый файл с правильным порядком. Могу ли я использовать текстовый файл в качестве входных данных для монтажа. Если да, то как мне это сделать?

2 ответа2

6

В более новых версиях ImagMagick (т.е.> v6.5.2-1) оператор @ можно использовать так:

montage @list.txt -geometry +0+0 -tile 17x15 all.jpg
3

Похоже, монтаж не поддерживает аргумент "файл с именами файлов".

Изменить: @Devdatta нашел правильный синтаксис (см. Также здесь): @filenames.txt . Таким образом, метод ниже должен быть необходим только для очень старых версий инструментов ImageMagick.


Но если вы используете Linux или Unix-подобную систему, вы можете заменить аргумент (ы) имени файла на вывод команды. Таким образом, вы можете использовать свой файл с упорядоченными именами файлов:

montage `cat filenames.txt` -geometry +0+0 -tile 17x15 all.jpg

(Обратите внимание на галочки вокруг команды cat.)

Разрывы строк между именами файлов в filename.txt не наносят вреда вызову команды. И вы даже можете использовать подстановочные знаки в filename.txt , так как подстановка команд предшествует расширению имени файла.

Конечно, вы также можете переименовать исходные файлы заранее, чтобы получить требуемый порядок.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .