Pesquisa · Mapa mental

PNG

PNG é um formato de dados utilizado para imagens, que surgiu em 1996 como substituto para o formato GIF, devido ao facto de este último incluir algoritmos patenteados.

Fonte: Wikipédia (pt)Atualizado em 16/07/2026
01

História e desenvolvimento

Imagem: eGuide Travel · BY · Openverse

A motivação para criar o formato PNG surgiu em 28 de dezembro de 1994, quando veio a público que o algoritmo de compressão de dados LZW, utilizado no GIF, havia sido patenteado pela Unisys. A patente exigia que todos softwares que suportassem GIF pagassem royalties. Essa patente levantou discussões entre usuários no Usenet, um desses usuários foi Thomas Boutell, que, em 4 de janeiro de 1995, abriu um tópico de discussão no Usenet no qual ele elaborou um plano de uma alternativa gratuita ao GIF. Muitos usuários ajudaram com propostas que mais tarde iria fazer parte do formato final. Oliver Fromme propôs o nome PING, que acabou se tornando PNG um acrônimo recursivo que significa PNG não é GIF, e também a extensão .png. Havia também outros problemas com a GIF que tornaram a substituição desejável, como, por exemplo, a sua limitação a 256 cores num momento em que computadores com capacidade para exibir uma gama maior de cores tornavam-se comuns. Embora o GIF permita animações, foi decidido que o PNG deveria ser um formato estático de imagem.

02

Funcionamento

Imagem: rubyblossom. · BY-NC · Openverse

Cabeçalho do arquivo

O arquivo PNG começa com uma assinatura composta por uma assinatura de 8 bytes. 89 50 4E 47 0D 0A 1A 0A

Segmentos do arquivo

Após o cabeçalho, há vários segmentos, cada segmento transmite determinadas informações sobre a imagem. Os segmentos se declaram como pontos críticos (critical) ou auxiliares (ancillary), e um programa, caso encontre um segmento auxiliar e não entenda, pode ignora-lo sem correr riscos. Essa estrutura baseada em segmentos foi criada para estender o formato PNG, mas, ainda assim, mantendo compatibilidade com versões mais antigas. Um bloco consiste em quatro partes: tamanho (4 bytes, big-endian ), tipo/nome do segmento (4 bytes), dados do segmento (bytes de comprimento) e CRC (código de redundância cíclica/soma de verificação; 4 bytes). O CRC é um CRC-32 de big-endian calculado sobre o tipo de segmento e os dados de segmento, mas não o tamanho.

Vídeos recomendados

Fontes consultadas

Continue pesquisando