A partir do Geoserver 1.5.2 o output de imagens ganhou uma melhor qualidade na cor. Este tutorial irá introduzir os conceitos de palette, e as várias opções na geração da imagem, e uma comparação da qualidade em situações diferentes.

1. O que são imagens palette

Em alguns formatos de imagens, como GIF e PNG, podem usados palletes, isto é, uma tabela (geralmente) de 256 cores para permitir uma melhor compressão. Basicamente, ele usa um índice de 8 bits que representar a posição dentro do palette, e assim a cor.

Isto permite que as imagens fiquem de 3-4 vezes menores do que as imagens padrão, com a limitação de que somente 256 cores diferentes podem aparecer na imagem. Dependendo do mapa, isto pode ser uma limitação, degradando visivelmente a qualidade da imagem.

Utilizar palettes geralmente significa um ganho no desempenho e nos custos, porque mais dados podem ser enviados com a mesma banda, e os clientes obterão respostas mais rapidamente.

2. Palette Output

A maneira a mais correto de utilizar uma palette é escolher um formato da saída de 256 cores, como: image/png8: PNG, com um palette 256 cores; image/gif: GIF.

Você verá que este pode ser um processo caro pois utiliza bastante processamento, mas dependendo da velocidade da rede, o custo extra pode ser ignorado. O processamento do palette é de qualquer maneira um trabalho repetitivo que pode ser feito por um usuário uma única vez, e assim indicar ao GeoServer que utilize-o. Há três maneiras de fazer isso:

   – Usando o internet safe paletted, um palette padrão construído dentro do GeoServer, adicionando o parâmetro palette=safe a requisição GetMap.
   – Fornecendo um palette de exemplo. Neste caso, o usuário gerará imagens 256 cores usando um programa externo (tal como Photoshop), e então irá armazená-las no diretório de $GEOSERVER_DATA_DIR/palettes. A arquivo de exemplo pode estar no formato do GIF ou PNG. Se o arquivo for nomeado mypalette.gif ou mypalette.png, o usuário poderá utilizálo passando o parâmetro palette=mypalette a requisição GetMap. GeoServer carregará o palette e a usará.
   – Fornecendo um arquivo para o palette (.PAL). O processo é exatamente como o anterior, mas esta vez somente o arquivo palette, no formato PAL será armazenado em $GEOSERVER_DATA_DIR/palettes.

Fonte: Geoserver