O formato suporta imagens com 1, 4, 8, 16, 24 ou 32 bits per pixel. As imagens de até 8 bits por pixel podem estar comprimidas com algoritmo semelhante ao padrão RLE (exceto 1 bpp) e possuem uma palette RGB associada.
As imagens com mais de 8 bits per pixel não podem ser comprimidas e representam a cor RGB diretamente. Em 16 bits per pixel as combinações mais usuais para os bits de um pixel são 5-5-5 ou 5-6-5, para respectivamente R-G-B. Em 32 bits geralmente a cor é representada com 24 bits mais um byte extra para o canal alfa.
O formato é acessado na sua completude, incluindo imagens comprimidas. Mas imagens com 4 bpp comprimidas não são suportadas. O formato pode possuir informação de resolução definida em pixels por centimetro.
O formato suporta imagens com 1, 4, 8 ou 24 bits per pixel. Todos os bpp disponíveis podem ser comprimidos com algoritmo semelhante ao padrão RLE. Recomenda-se o uso do formato sempre comprimido para melhor compatibilidade com aplicações existentes, pois algumas delas julgam que o PCX sempre estará comprimido e tentam invariavelmente descomprimi-lo, mesmo que não o esteja gerando erros diversos.
O formato é acessado na sua completude. O formato pode possuir informação de resolução definida em pixels por polegada.
O formato suporta imagens com 1, 4 ou 8 bits per pixel. Não podem ser salvas imagens RGB comprimidas ou não, o formato não suporta.
Pela especificação todas as imagens seriam sempre comprimidas com o algoritmo LZW. Mas a IM implementa um algoritmo de compressão falsa para o GIF de forma que não fica sujeita a Patente do algoritmo que pertence a Unisys. Se for especificado IM_COMPRESSED, em vez de IM_DEFAULT, a compressão LZW é utilizada, neste caso a aplicação cliente deve ter um contrato de licensa feito com a Unisys. Veja em http://corp2.unisys.com/LeadStory/lzwfaq.html.
O formato pode conter mais de uma imagem, apenas a primeira imagem é lida, as outras são ignoradas. O formato pode possuir informação de resolução definida em pixels por polegada.
Devido a vasta possibilidades de imagens neste formato convém lembrar que a biblioteca se resumirá a ler imagens com 1, 4, 8, e 24 bpp, seguindo o Baseline TIFF. As imagens podem estar comprimidas nos padrões CITT3, Huffman, LZW e PackBits. A IM irá salvar imagens comprimidas usando o formato Packbits. O formato pode possuir informação de resolução definida em pixels por centimetro ou em pixels por polegada.
Consideramos o TIFF como o formato mais completo e mais bem suportado pelas aplicações para armazenamento de imagens.
Está sendo usada a biblioteca de domínio público LibTiff © Sam Leffer, que sofre atualizações periódicas, ver em http://www-mipl.jpl.nasa.gov/~ndr/tiff/ ou ftp://sgi.com/graphics/tiff.
O formato suporta imagens com 8, 24 ou 32 bits per pixel. Mas cada pixel pode conter também dois bytes por canal, resultando em imagens de 16, 48 e 64 bpp. No caso de dois bytes por canal o formato fornece o maior valor que corresponde ao branco e o menor valor que corresponde ao preto, para que possamos converter para valores entre 0 e 255. O formato suporta compressão usando um algoritmo semelhante ao padrão RLE.
As imagens de 8 bpp com 1 ou 2 bytes são sempre tons de cinza. Exceto numa especificação obsoleta onde a imagem possue uma palette fixa. O formato pode conter uma palette em vez de uma imagem, este modo não é suportado.
Não está implementado o suporte para escrita de imagens comprimidas, pois não conhecemos o algoritmo de compressão. É feito a leitura de imagens comprimidas e pode-se testar o algoritmo de descompressão pois foram encontrados exemplos para isso.
O formato suporta imagens com 1, 8, 24 ou 32 bits per pixel. As imagens de até 8 bpp podem ser tons de cinza. O formato suporta compressão usando um algoritmo semelhante ao padrão RLE.
Não está implementado o suporte para escrita de imagens comprimidas, pois não conhecemos o algoritmo de compressão do mesmo, embora saibamos o de descompressão. Embora o algoritmo de leitura do formato RAS comprinido esteja implementado, não se encontrou nenhum programa comercial ou público que gerasse um RAS comprimido para testes.
O formato suporta imagens com 8, 24 ou 32 bits per pixel. Imagens de 8 bpp são sempre tons de cinza. Imagens com mais de 8 bpp podem ser RGB, CMYK, YCbCr ou YCCK, todos esses formatos são convertidos para o formato RGB. O formato pode possuir informação de resolução definida em pixels por centimetro ou em pixels por polegada.
O formato é sempre comprimido usando a compressão JPEG com perdas. As mesmas só são notadas para imagens com poucos detalhes onde pequenas mudaças são facilmente notadas.
Devido à complexidade da compressão JPEG usamos uma biblioteca de domínio público desenvolvida pelas pessoas do próprio grupo JPEG, ver em ver em ftp://ftp.uu.net/graphics/jpeg.
Esse não é propriamente um formato de imagem, mas conter imagens e por sua difusão no TeCGraf foi necessário inclui-lo na IM. O formato suporta apenas imagens de 8 bpp, não comprimidas. Assim não é possível gravar imagens RGB de 24 bpp.
Por ser um arquivo texto pode ser facilmente editado, mas implica em arquivos muito grandes se a imagem for grande. É usado mais para imagens pequena, por exemplo 32x32 pixels, para uso em botões e diálogos.
O formato contém muitas outras informações além da imagem, por ser uma arquivo texto de fácil acesso optou-se por forçar o usuário a criar um arquivo separado para que a IM possa le-lo. Neste novo arquivo remova todos os comentários e coloque a declaração da imagem no início do mesmo e com as letras LED como as três primeiras letras do arquivo.
Por exemplo:
LEDImage = IMAGE[
0= "0 0 0",
1= "192 192 192",
2= "0 0 128",
3= "255 255 255"]
(20,19
,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 etc...A IM irá salvar um arquivo exatamente com esssa características para ser posteriormente incluido em outro arquivo LED.
O formato suporta imagens RGB, RGB indexadas por palette e tons de cinza. As imagens pode ser comprimidas no padrão RLE.
O formato é acessado na sua completude, mas são acessadas apenas imagens com 8, 16, 24 e 32 bits per pixel.
| 8 BPP | 24 BPP | |||||||
| Not Compressed | Compressed | Not Compressed | Compressed | |||||
| Read | Write | Read | Write | Read | Write | Read | Write | |
| PCX | Ok | OkN | Ok | Ok | Ok | OkN | Ok | Ok |
| BMP | Ok | Ok | Ok | Ok | Ok | Ok | --- | --- |
| TIF | Ok | Ok | Ok | Ok | Ok | Ok | Ok | Ok |
| SGI | Ok | OkG | Ok | ??? | Ok | Ok | Ok | ??? |
| RAS | Ok | Ok | *** | ??? | Ok | Ok | *** | ??? |
| GIF | --- | --- | Ok | Ok | --- | --- | --- | --- |
| JPG | --- | --- | Ok | OkG | --- | --- | Ok | Ok |
| TGA | Ok | Ok | Ok | Ok | Ok | Ok | Ok | Ok |
| LED | Ok | Ok | --- | --- | --- | --- | --- | --- |
Legenda:
Ok - Implementado e funcionando de acordo.
OkG - Somente como gray scale.
OkN - Não recomendado.
--- - Não aplicável.
??? - Não implementado pois não tem documentação.
*** - Implementado mas sem exemplos para testes.
Convém lembrar que imagens de até 8 bits per pixel são convertidas para 8 bpp. E imagens com mais de 8 bpp são convertidas para 24 bpp. A representação de cor é sempre RGB. Imagens tons de cinza são retornadas com uma palette de tons de cinza. A função imSaveMap sempre salva a imagem com 8 bpp e a função imSaveRGB sempre salva a imagem com 24 bpp. Se o formato só suporta imagens tons de cinza para 8 bpp então a imagem é automaticamente convertida para tons de cinza antes de ser salva.
A função imLoadRGB fará com que imagens de até 8 bpp sejam convertidas para 24 bpp. A função imLoadMap retorna erro se a imagem a ser lida for com mais de 8 bpp.
Existem formatos que não suportam imagens com mais de 24 bpp fazendo com que a função imSaveRGB retorne erro.
A opção de compressão nos diversos formatos não obedece padrão algum entre sí, cada formato implementa a sua própria ou variação de alguma conhecida. Se for especificado que a imagem deve ser comprimida e o formato não suporta compressão, ou for especificado que a imagem não deve ser comprimida e o formato exige compressão as funções imSaveMap e imSaveRGB retornarão erro.
A compressão RLE é mais adequada para imagens com muitas áreas uniformes. Quando a imagen possue muita informação distinta o arquivo pode ser maior que o não comprimido.