Como animar o gif em imagemagick

Como animar o gif em imagemagick

Uma animação é bem legal. Quero dizer, é animado, como você pode não gostar, certo? Mas você sabia que uma animação nada mais é do que um monte de fotos juntas e tocadas uma após a outra, super rápida? Quando você vê uma animação, nada mais é do que um monte de fotos tocadas com rapidez suficiente para que seus olhos não possam dizer que são fotos. Seus olhos os interpretam como um pequeno filme. Agora, que sabemos como é feita uma animação, vamos lá e fazer alguns.

Neste tutorial, mostraremos como animar usando o imagemagick. Observe que o ImageMagick é um pacote muito completo e você pode fazer muito. Então, vamos cobrir apenas o básico da animação.

Instalando o ImageMagick

Precisamos que o ImageMagick para esse processo, então vamos instalá -lo primeiro usando o seguinte comando:

sudo apt-get install imagemagick

Animação básica

As imagens são a base de uma animação. Para esta animação, temos 10 fotos. A primeira foto é uma tela em branco. O segundo tem um L nele. O terceiro tem um L e um I. O quarto tem um L, um i e n nele, e assim.

Lembre -se de que quando você numerar as fotos, você deve ter cuidado. Nesse caso, se tivéssemos numerado as fotos como Pic-1 até o PIC-10, o programa não teria gerado o mesmo GIF como se tivéssemos numerado como Pic-01 até o PIC-10. Isso ocorre porque o pic-10 vem depois do pic-1. Mas o PIC-10 não vem logo após o PIC-01; PIC-02 vem depois do PIC-01. Então, se você tiver 100 fotos, deseja usar três dígitos para numerá -los. Por exemplo, use os números Pic-001 até o PIC-100.

Vamos começar a animar.

Downloads de CD
(Navegue até a pasta que contém suas imagens.)

converter -delay 20 -loop 0 pic-*.Animação GIF.gif

foto-*.GIF: As 10 imagens iniciais que temos (o Star Means incluem fotos com qualquer coisa nessa posição).

animação.GIF: o nome da saída (o GIF animado).

-Loop: Loop é o número de vezes que a animação deve ser repetida. Se você definir esse número como zero, será um loop infinito (loop sem fim).

-Atraso: define o atraso em 1/150 de um segundo.

O que escrevemos aqui? Estamos tirando as 10 fotos que criamos e criamos uma animação que toca as imagens uma após a outra com um pequeno atraso entre as imagens. Depois que o GIF for gerado, ele será chamado de “animação.gif ”e irá repetir continuamente.

Se você quiser redimensionar a animação, use o seguinte comando:

Converter -Resize 768x576 -Delay 70 -loop 0 pic-*.GIF Animation02.gif

O ponto é que você pode adicionar quantos parâmetros quiser.

Animação da página

No exemplo anterior, tocamos uma foto de cada vez. Mas toda vez que uma foto é tocada, a foto anterior é removida. PIC-01 foi jogado primeiro, então PIC-02, então PIC-03. Mas, neste caso, Pic-01, Pic-0, até que o PIC-10 não estava todo no mesmo quadro a qualquer momento. Em uma animação de página, pic-*.GIF estão todos na tela no final. Então, a imagem anterior não é removida. Para dar uma idéia de como é, vamos tirar um novo conjunto de fotos.

Converter -Delay 100 -Size 1000x1000 XC: Skyblue \
-página +0 +0 foto11.jpg \
-página +500 +0 foto22.jpg \
-página +0 +500 foto33.jpg \
-Página +500 +500 foto44.jpg \
-Loop 0 Animation03.gif

Sabemos o que o atraso e os interruptores de loop fazem.

-Tamanho: este é o tamanho da sua tela. Você pode defini -lo para qualquer dimensão que quiser. No nosso exemplo, definimos para 1000 × 1000.

XC: Skyblue: esta é a cor de fundo. Nesse caso, escolhemos o Skyblue como a cor de fundo.

-Página: O interruptor da página é seguido pelos valores de deslocamento. Em outras palavras, após o interruptor da página, escreva um sinal de plus e onde no eixo x você deseja que a imagem seja e depois no eixo y. Lembre -se de que o canto superior esquerdo é 0, 0 ou +0 +0. Aqui, a foto11.A imagem JPG é colocada em (0,0). A foto22.A imagem JPG é colocada em (500,0). O foto33.A imagem JPG é colocada em (0.500). E finalmente, o Photo44.A imagem JPG é colocada em (500.500). Lembre-se também de que, para o eixo y, para baixo é positivo. Todas as imagens aqui têm uma resolução de 500 × 500. Após os valores de deslocamento, você pode anotar o nome da imagem para a qual este deslocamento se aplica.

Animation03.GIF: o nome da saída.

Descarte anterior

No próximo exemplo, se queremos que a imagem volte para a tela inicial antes de prosseguir, vamos pegar o código.JPG, coloque -o na tela, remova -o da tela, volte para a tela de fundo e coloque a comida.imagem jpg, etc. Vamos mostrar um exemplo:

Converter -Dispose Nenhum -Delay 0 \
-Tamanho 1000x1000 XC: Skyblue +Antialias \
-Descarte -se -Dellay 100 \
-página +0 +0 foto11.jpg \
-página +500 +0 foto22.jpg \
-página +0 +500 foto33.jpg \
-Página +500 +500 foto44.jpg \
-Loop 0 Animation04.gif

Aqui, há apenas um novo termo: o interruptor de disposição. Quando você usa a palavra anterior com o interruptor de disposição, ela retorna a tela para o estado anterior antes de colocar a próxima imagem. Aqui, a tela permanente inicial é a tela com a cor do Skyblue - esta é a nossa tela de fundo. Então, adicionamos o código.Imagem JPG e, após um breve atraso, voltamos à nossa tela de fundo. Então, exibimos a comida.Imagem JPG e volte à nossa tela de fundo, etc. Você entendeu certo?

Para mais informações sobre animações usando o ImageMagick, visite https: // legado.imagemagick.org/uso/anim_basics/.

Conclusão

As animações são bem legais e tendem a ser úteis aqui e ali. Usando o imagemagick, há muito que você pode fazer em termos de animação. No entanto, neste tutorial, apenas aprendemos sobre o básico das animações. Em sua forma mais simples, você pode ter muitas imagens rotuladas adequadamente que você pode usar para criar uma apresentação de slides - basicamente exibindo as fotos em uma determinada ordem (pic01, depois pic02, depois pic03, etc.). No segundo método, você pode sobrepor imagens. Temos pic1, depois pic1/pic2, depois pic1/pic2/pic3, etc. Usando o método anterior, você pode mostrar uma imagem, voltar à tela original e depois mostrar uma segunda imagem, etc. (Antecedentes, Pic01, Fundo, Pic02, Fundo.). Qualquer que seja o método que você use, você pode criar ótimas animações em um piscar de olhos. Embora o código pareça tedioso, ainda é uma linha!