Problemas de transparência ao converter png's em gif

0

Estou usando o convert do imagemagick para obter um conjunto de PNGs e convertê-lo para GIF. O comando que estou usando é

convert -delay 10  -loop 0 *.png out.gif

Eu gosto dos resultados, pois há pouca queda na qualidade visual, mas um problema que enfrentei foi quando meus PNGs têm dados transparentes: cada quadro não parece ser uma imagem separada, mas em qualquer lugar que fosse transparente você pode ver os dados das imagens anteriores.

Então, por exemplo, se você tem uma bola rolando da esquerda para a direita e o fundo era transparente, você veria todos os quadros anteriores em que a bola estava.

Como posso lidar com isso? Eu gostaria que o GIF preservasse a transparência, se possível (caso contrário, apenas crie uma cor predefinida), mas gostaria de uma animação adequada.

    
por That Umbrella Guy 21.02.2013 / 22:13

1 resposta

3

Confira a opção dispose do ImageMagick para definir como o quadro anterior é descartado de (ou não) antes que o próximo quadro seja desenhado.

The layer disposal method defines the way each the displayed image is to be modified after the current 'frame' of an animation has finished being displayed (after its 'delay' period), but before the next frame on an animation is to be overlaid onto the display.

   Undefined   0  No disposal specified (equivalent to 'none').
   None        1  Do not dispose, just overlay next frame image.
   Background  2  Clear the frame area with the background color.
   Previous    3  Clear to the image prior to this frames overlay.

Por padrão, acredito que escolha "Indefinido", que é equivalente a "Nenhum", o que significa que ele não descarta o quadro anterior.

    
por 21.02.2013 / 22:27