Universidade Federal de Minas Gerais Formatos de Imagem PNG Bruno Xavier da Silva Guilherme de Castro Leite Leonel Fonseca Ivo Matheus Silva Vilela Rafael Avelar Alves Belém Belo Horizonte, 5 de maio de 2009
1 Introdução O PNG (Portable Networks Graphics) é um formato de imagens do tipo bitmap, ou seja, constituído de um conjunto de pontos chamados pixels, cada um destes pontos possuindo um ou vários valores que descrevem a sua cor. Esse formato foi criado em 1996 para ser uma alternativa livre a outro formato bastante conhecido, o GIF, pelo fato desse possuir seu algoritmo de compressão (o algoritmo LZW) patenteado. Além disso, o PNG também tinha o objetivo de ser melhor, tecnicamente, que o GIF. O GIF possuía diversas limitações como, por exemplo, sua limitação de 256 cores numa época em que os computadores já eram capazes de exibir bem mais que isso. Foi decidido, porém, que o PNG seria um formato estático, ao contrário do GIF, que suportava animações. A versão que suporta animação do PNG foi lançada somente depois de bastante tempo, não sendo muito popular atualmente. Características O formato PNG foi desenvolvido, como seu nome já demonstra, para transferências de imagens pela internet, e não para uso profissional. Por isso, o formato apresenta algumas limitações, como não suportar o esquema de cores CMYK. O PNG permite armazenar imagens em escala de cinza (até 16 bits por pixel), em cores reais (True color, até 48 bits por pixels) bem como imagens indexadas, fazendo uso de paletas de 256 cores. Suporta transparência pela camada alfa de até 256 níveis, ao contrário do GIF que só permite escolher uma cor da paleta como transparente. Essa característica lhe garante bastante reuso, pois a imagem pode ser utilizada em sites com os mais diversos fundos sem serrilhamento, como acontece em outros formatos.
2 Compressão Utiliza duas etapas de compressão: Uma pré-compressão é realizada utilizando-se o método da previsão. Esse método percorre toda a imagem, prevendo a cor de cada pixel baseandose nas cores dos vizinhos, e subtraindo o valor previsto da cor real daquele pixel. Os vizinhos a serem utilizados são escolhidos para cada linha da imagem. Uma imagem, após submetida a esse filtro, torna-se mais compressível que a imagem original. A próxima etapa é a compressão em si, que utiliza o método DEFLATE. Esse algoritmo proporciona uma compressão com pouquíssima perda de informações, sendo de 5 a 25% melhor que a compressão utilizada no GIF. Essa é a mesma compressão utilizada nos arquivos.zip, função para a qual foi originalmente construída. Este método não vê a imagem como algo 2D e sim como uma cadeia, e é dividido em duas etapas: 1 Se partes da cadeia analisada forem repetidas, elas são eliminadas e em seu lugar colocadas referências para a parte onde apareceram originalmente. 2 A segunda etapa consiste em substituir símbolos comumente usados por representações menores e os menos usados por representações maiores. O método cria uma árvore, que determina a necessidade de se substituir cada símbolo, e usa tal árvore para decidir quais são os símbolos que devem ser efetivamente substituídos. Principais Usos Como já dito, o principal uso do PNG é para transferência de imagens pela internet e uma das características do formato criado para esse fim é seu intercalamento. Um intercalamento é um método de codificar uma imagem bitmap, que permite que uma pessoa que recebeu parcialmente uma imagem possa ver uma cópia degradada da imagem original. O formato PNG oferece um algoritmo de intercalamento de duas dimensões e sete passagens, chamado Adam7. Esse algoritmo é bem mais sofisticado que aquele utilizado pelo GIF, permitindo que uma imagem de menor resolução e bem definida seja vista antes de sua transferência ser terminada.
Além disso, o PNG é uma boa ferramenta a ser utilizada em caso de imagens com transparência variada, por suportar tanto a transparência binária, como a do GIF, quanto a transparência em canal alfa, que permite até 256 níveis diferentes de transparência. 3 Usos desaconselhados Apesar de todas as suas vantagens sobre o GIF, o PNG ainda é um formato para imagens estáticas, perdendo para seu concorrente quando o assunto é animação de imagens. Assim, para animações, o uso de do formato GIF ainda é melhor, já que os formatos de animação do PNG (APNG e MNG) não são suportados por todos os browsers. Além disso, por possuir um algoritmo de compressão sem perda de dados, o PNG cria imagens muito pesadas se estas possuírem muitas cores e tiverem uma grande dimensão. Assim, para imagens com essas características, como fotos, o uso do formato JPEG é melhor, por gerar arquivos com um tamanho menor sem muita perda de informação. Disputa com outros formatos Quando comparado com outros formatos, o PNG possui diversas vantagens, a principal delas sendo a compressão com pouca perda de dados. Comparado com o JPEG, o PNG apresenta maior tamanho, porém uma qualidade de imagem muito superior. Seria uma melhor opção se as imagens a serem usadas contivessem textos, linhas e outras transições bruscas. O formato JPEG-LS também apresenta pouca perda de dados na compressão, e por isso pode ser diretamente comparado ao formato PNG por um conjunto padrão de imagens de teste. Nessas imagens, o JPEG-LS tem performance geralmente de 10-15% melhor, mas perde substancialmente (de 50 a 75%) na qualidade de algumas imagens para o PNG. São formatos semelhantes, cuja escolha para seu uso dependerá da imagem. Comparado ao GIF, seu real concorrente, o PNG costuma ser menor - até 50% menor dependendo do caso - e apresenta melhor qualidade e versatilidade quando se trata de imagens estáticas.
4 Versões 1 de Outubro de 1996 Versão 1.0 do PNG é lançada. 31 de Dezembro de 1998 Versão 1.1, com poucas mudanças. 11 de Agosto de 1999 Versão 1.2 é lançada. 10 de Novembro de 2003 O PNG torna-se um padrão internacional. (ISO/IEC). Essa versão do PNG pouco difere da versão 1.2. 3 de Março de 2004 Lançada uma nova especificação ISO do PNG. Suporte por browsers O suporte ao PNG apareceu inicialmente no Internet Explorer 4.0 e Netscape 4.04. Apesar das campanhas feitas para se substituir o uso do GIF pelo PNG, inclusive sendo criadas ferramentas para conversão entre tais formatos, o adoção do PNG pelos websites demorou a acontecer. O GIF continua sendo mais usado que o PNG porque: O PNG não é suportado por browsers antigos (como o IE antes da versão 4). O PNG não tem suporte a animação (apesar da existência de formatos baseados no PNG, chamados APNG e MNG, que permitem animações como aquelas do GIF). Entre os browsers que suportam o PNG, pode-se citar: Apple Safári, Google Chrome, Mozilla Firefox, Opera, Camino, Internet Explorer 7 (apesar de diversos erros), e muitos outros. O Internet Explorer apresenta diversos erros na exibição do PNG. Alguns deles são: A versão 6.0 falha ao exibir imagens em PNG de 4097 ou 4098 bytes. Todas as versões abaixo da 6.0 não implementam corretamente transparência em canal alfa. Todas as versões abaixo da 7.0 não conseguem combinar transparência alfa de 8 bits com opacidade de elementos, sem preencher partes parcialmente transparentes de preto. Nenhuma versão apresenta suporte a correção de cores. Nenhuma versão suporta correção gamma.
5 Suporte por Sistemas Operacionais Ícones no formato PNG têm sido suportados por quase todas as distribuições Linux desde 1999, em ambientes de desktop como o GNOME. Somente em 2006 os ícones em PNG foram incluído no Microsoft Windows, com o lançamento do Windows Vista. Os ícones em PGN também são suportados no MAC OS X. Referências [1] Wikipédia: http://pt.wikipedia.org/wiki/png [2] Wikipedia: http://en.wikipedia.org/wiki/portable_network_graphics [3] PNG Images/Image Format: http://www.mywebsite.force9.co.uk/png/ [4] GIF, JPEG or PNG?: http://web-building.crispen.org/formats/png.html