×
Namespaces

Variants
Actions

Como otimizar imagens PNGs para otimizar o tamanho do arquivo JAR

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Artigo
Tradução:
Por thiagobrunoms
Última alteração feita por lpvalente em 24 Nov 2013

Contents

Introdução

Este artigo mostra como otimizar PNGs, de modo a otimizar o espaço ocupado por arquivos JAR.

Devido à baixa largura de banda do GPRS, muitas operadoras colocam uma restrição no tamanho dos arquivos .jar. Este limite varia de país para país. Normalmente, na Europa, é em torno de 200k a 300k, mas em mercados de desenvolvimento poderia ser muito menor. Por esta razão é importante reduzir o tamanho dos recursos (arquivos localizados em /res) contidos no arquivo .jar final.

Java ME suporta dois tipos de formatos PNG. O mais comum é o tipo PNG-24, o qual suporta 16.7 milhões de cores. Existe também o conhecido como PNG indexado (ou PNG-8), o qual possui apenas 256 cores.

Se você deseja converter uma figura no formato PNG-24 para PNG-8, você pode otimizar o tamanho em 5 vezes, porém, você terá uma quantidade de cores bem menor. Na maioria dos casos, a redução de cores não é perceptível, de fato a maioria dos jogos comerciais usam imagens com muito menos do que 256 cores.

Você pode criar uma figura PNG-8 usando o "salvar para web", recurso no Photoshop ou funcionalidade de exportação no Fireworks. Esta é uma característica muito interessante. Ele mostra como a imagem é antes e depois da conversão. Normalmente, você não verá nenhuma degradação perceptível na qualidade.


A nova versão do Gimp (2,4) também podem criar figuras no formato PNG-8. Apenas localize imagem / mode / cadastradas.

Alpha Transparência

Infelizmente, nem o Photoshop nem o Gimp transparência alfa suporta (eles apenas suportam a transparência de um único bit). Isto significa que se você tem imagens de forma irregular (ou seja, não retangular), terão uma bordar no formato estranho de pixels. Você pode compensar este efeito, selecionando uma cor fosca para ser a mesma que a cor de fundo em que as imagens vão ser exibidas. É claro que só é eficaz se você tiver uma cor de fundo homogêneo.

Existe também um programa chamado Web Image Guru que pode criar imagens indexadas PNGs com transparência alfa total.

Há duas ferramentas de código aberto que pode converter PNG-24 para PNG-8 com transparência alpha: PNGQuant e PNGNQ. Infelizmente, essas duas ferramentas têm um algoritmo de redução de mau paleta (se a sua imagem original tem 600 cores, você vai ter que reduzir as cores para pelo menos 256 para torná-lo PNG-8). Isso resulta em uma perda visível de qualidade. Esperemos que, no futuro, estas ferramentas sejam melhoradas.

Unfortunately, only Nokia and Sony Ericsson provide good support for support alpha transparency, so most people stick with single bit transparent PNGs and leave it at that.

Infelizmente, apenas apenas os dispositivos Nokia e Sony Ericsson fornecem um bom suporte para transparência alfa.

PNGOUT

Outra ferramenta que é essencial para reduzir o PNG é PNGOUT, disponibilizado em http://advsys.net/ken/utils.htm. Isso reduz o tamanho removendo cabeçalhos desnecessários e recompactando o PNG utilizando algoritmos mais eficientes. Normalmente, você ganha em torno de uma redução de 10%.

Os parâmetros padrão são geralmente os melhores, no entanto, se você planeja portar a sua aplicação, recomendo usar a opção MINCODES2 /. Esta é uma característica que pouco se sabe que resolve os problemas em alguns celuares que têm implementações de descompressão zip muito lentas.

Você pode criar um arquivo batch para executar em todas as PNGs PNGOUT dentro de um diretório usando o código a seguir:

for% i in (*. png) do pngout i "%" / mincodes2

Esta ferramenta está sendo constantemente melhorada. Desta forma, certifique-se de que você tenha obtido a versão mais recente.

Otimização

Se você realmente precisa de uma redução de alguns bytes extras, você pode usar http://people.bath.ac.uk/ea2aced/tech/png/pngslim.zip PNGSlim. Este é um script que usa uma combinação de pngout, advdef, DeflOpt e pngrewrite. Ela produz uma outra redução de 0,5% para pngs que já foram optimizados usando pngout, embora ele seja um pouco lento.

Múltiplos PNGs

If you have multiple PNG files in your project, you can reduce about 200 bytes per PNG (header information), joining all the images in one only large PNG file. Then, you can use some Sprite design pattern to extract the little images from the big one

Se você tem vários arquivos PNG em seu projeto, você pode reduzir cerca de 200 bytes por PNG (informações do cabeçalho), juntando-se todas as imagens em um único arquivo PNG grande. Então, você pode usar alguns padrões de projeto do tipo Sprite para extrair as imagens pequenas a partir da maior.

Ferramentas

This page was last modified on 24 November 2013, at 19:09.
128 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×