Formato GIF — paleta de 256 cores e imagens animadas
GIF da CompuServe (1987): 87a e 89a, paleta de 256 cores, LZW sem perdas, transparência de uma cor, animação e quando trocar por WebP ou vídeo.
O GIF (Graphics Interchange Format) é um formato lançado em 1987 pelo serviço online americano CompuServe; na revisão de 1989, o GIF89a, foram adicionados blocos de extensão usados para cor transparente e animação. É usado desde os primórdios da internet e ainda hoje é sinônimo de "gif animado", mas tecnicamente está entre os formatos mais antigos.
Paleta de 256 cores e compressão LZW
O GIF não guarda a cor de cada pixel diretamente: ele guarda qual posição, numa paleta de até 256 cores (tabela de cores), corresponde ao pixel. Pela especificação, a tabela de cores tem tamanho em potência de 2, com no máximo 256 entradas. Essa sequência de números é comprimida sem perdas pelo algoritmo LZW.
A compressão em si é sem perdas, mas reduzir uma foto de mais de 16 milhões de cores para 256 causa uma grande perda. Degradês suaves, como céu ou pele, aparecem com pontilhado (dithering) ou em faixas. Já pixel art e formas simples, com poucas cores, ficam pequenas e nítidas.
O algoritmo LZW já teve problemas de patente, o que foi um dos motivos para o desenvolvimento do PNG nos anos 1990. Essas patentes já expiraram.
Transparência
A extensão de controle gráfico (Graphic Control Extension) do GIF89a tem um campo para indicar um único número de cor transparente. Os pixels com esse número não são desenhados, deixando o fundo aparecer. Ou seja, a transparência é "totalmente transparente ou totalmente opaca", sem possibilidade de sombras semitransparentes ou bordas suaves. Por isso, ao colocar um GIF transparente sobre um fundo de outra cor, muitas vezes aparece um contorno branco (halo) nas bordas.
Animação
A animação em GIF mostra várias imagens em sequência, e o atraso entre quadros é definido pela especificação em centésimos de segundo. O número de repetições é definido por um bloco de extensão que se popularizou depois (NETSCAPE2.0).
Estrutura do arquivo
Um arquivo GIF começa com a assinatura de 6 bytes GIF87a ou GIF89a, seguida destes blocos:
- Descritor de tela lógica: largura e altura da tela inteira e número da cor de fundo
- Tabela de cores global: paleta usada no arquivo inteiro (opcional)
- Extensão de controle gráfico: atraso do próximo quadro, número da cor transparente e forma de descarte do quadro (89a)
- Descritor de imagem e dados da imagem: posição e tamanho do quadro, tabela de cores local se necessário e dados comprimidos em LZW
- Os passos 3 e 4 se repetem para cada quadro e, no fim, vem o byte de término (3B).
Como cada quadro pode ter sua própria tabela de cores local, em teoria o arquivo como um todo pode usar mais de 256 cores, mas dentro de um quadro o limite de 256 cores continua valendo.
Vantagens e limitações
- Compatibilidade: todos os navegadores e mensageiros e quase todos os programas reproduzem, inclusive a animação.
- Tamanho ineficiente: cada quadro é comprimido separadamente em 256 cores, então conteúdo fotográfico gera arquivos enormes. O Google explica que o WebP animado pode oferecer tamanhos menores que GIF e APNG.
- Limites de cor e transparência: apenas 256 cores e transparência de 1 bit.
Uso principal e formatos alternativos
Ainda é usado quando reproduzir em qualquer lugar é o mais importante, como em imagens curtas de reação, ícones de carregamento e pixel art. Para imagens animadas em sites, WebP ou AVIF animados ou vídeos curtos (MP4, WebM) são bem menores e mais nítidos.
Cuidados ao converter
- GIF → JPG·PNG: a maioria das ferramentas salva só o primeiro quadro como imagem estática.
- PNG·JPG → GIF: a imagem é reduzida a 256 cores e fotos perdem muita qualidade. Não é recomendado, a não ser para logos e formas.
- Para converter imagens estáticas entre vários formatos, veja Conversor de formato de imagem.
Experimente agora