ImageMagick Anexar sequência de imagens Nomes de arquivos

1

Estou usando a ferramenta de animação Synfig para exportar uma sequência de arquivos .png. Estes estão no seguinte formato: C1.0000.png, C1.0001.png, C1.0002.png e assim por diante.

Eu quero convertê-los em uma spritesheet (ou seja, acrescentar todos eles juntos), no entanto, eu também preciso das mesmas animações, mas invertido.

Aqui é onde eu tenho o problema. Ao usar a seguinte sintaxe:

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

Não obtenho uma sequência semelhante à que tinha antes. (C1right.0000.png, C1right.0001.png etc) mas sim C1right.-0.png, C1right.-1.png, etc.

Isso por si só não é tão ruim, mas como o comando + append classifica as imagens alfabeticamente e não numericamente, acabo com uma sequência em que a imagem 2 não segue a imagem 1, mas a imagem 11 segue a imagem 1, com 2 terminando depois de 19 anos.

Existe alguma maneira de manter a estrutura do nome do arquivo original? Ou existe uma maneira de garantir que o + append classifique os arquivos numericamente?

    
por Qqwy 22.01.2013 / 23:36

2 respostas

2

Somente o uso de padrões glob não funcionará. Você deve fazer um loop em todos os arquivos:

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

Isso será executado assim:

convert C1.01000.png -flop C1right.01000.png
convert C1.01001.png -flop C1right.01001.png
convert C1.01002.png -flop C1right.01002.png
    
por 23.01.2013 / 00:07
0

Use o especificador de formato %04d ( 0 significa zero preenchido à esquerda, 4d significa 4 posições decimais):

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

Os nomes dos resultados serão

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

Nota : Na versão 7 ou superior do ImageMagick, simplesmente substitua o comando convert por magick .

    
por 21.09.2018 / 20:56