ImageMagick Добавить последовательность изображений Имена файлов

822
Qqwy

Я использую инструмент анимации Synfig для экспорта последовательности файлов .png. Они имеют следующий формат: C1.0000.png, C1.0001.png, C1.0002.png и так далее.

Я хочу преобразовать их в таблицу спрайтов (т.е. добавить их все вместе), однако мне также нужны те же анимации, но с переворотом.

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

 convert C1.*.png -flop C1right.*.png 

Я не получаю последовательность, похожую на то, что у меня было раньше. (C1right.0000.png, C1right.0001.png и т. Д.), Но вместо этого C1right.-0.png, C1right.-1.png и т. Д.

Само по себе это не так уж плохо, но поскольку команда + append сортирует изображения по алфавиту, а не по номерам, я получаю последовательность, в которой не изображение 2 следует за изображением 1, а изображение 11 следует за изображением 1, а 2 заканчивается после 19 ,

Есть ли способ сохранить исходную структуру имени файла? Или есть способ убедиться, что приложение + сортирует файлы по номерам?

1

2 ответа на вопрос

2
paulolc

Only using glob patterns will not do. You must loop on all files:

for f in C1*.png ;do convert $f -flop $(echo $f | sed 's/\./right./') ;done 

This will execute like this:

convert C1.01000.png -flop C1right.01000.png convert C1.01001.png -flop C1right.01001.png convert C1.01002.png -flop C1right.01002.png 
0
MarianD

Использовать спецификатор формата %04d( 0означает заполнение нулями слева, 4dозначает 4 десятичных знака):

convert C1.*.png -flop C1right.%04d.png 

Приведенные имена будут

C1right.0000.png C1right.0001.png C1right.0002.png 

Примечание . В ImageMagick версии 7+ просто замените convertкоманду на magick.

Похожие вопросы