PUCRS
Faculdade de Informática
Programação de Software Básico -
4613S-04

Sugestão de Formato de Imagem



Na classe ImageClass uma imagem é formada por pontos, nos quais a cor é dada por 3 valores inteiros de 1 byte. Estes valores correspondem aos valores de RED, GREEN e BLUE que formam a cor do ponto.

Para armazenar um inteiro de 1 byte declare variáveis do tipo 
unsigned char.

Os pontos da imagem devem ser armazenados em uma matriz como:

unsigned char Imagem[1000][1000][3].

Nesta matriz, os 2 primeiros índices são as posições Y e X dos pontos, respectivamente.
Dado um ponto de coordenadas (cx,cy), a sua cor é definida  pelos seguintes dados:

Imagem[cy][cx][0]  <<< componente R da cor

Imagem[cy][cx][1]  
<<< componente G da cor
Imagem[cx][cy][3] 
<<< componente B da cor

Se  você desejar, por exemplo, imprimir na tela os valores de R,G e B de todos pontos  de uma imagem, separados por linha, pode fazer conforme o código abaixo. Considere que TAMX e TAMY armazenam as dimensões da imagem.

for(y=0;y< TAMY;y++)
{
    printf("Linha %d: \n", y);
    for(x=0; x<TAMX; x++)
    {
        int r,g,b;
        r = Imagem[y][x][0];
       
g = Imagem[y][x][1];
        b = Imagem[y][x][2];
        printf("(%d, %d, %d", r,g,b);
    }
    printf("\n");
}

Formato de Imagens

Um possível formato para armazenam as imagens seguem o seguinte formato.

TAMX Número do tipo int que define o número de colunas de uma imagem
TAMY Número do tipo int que define o número de linhas de uma imagem
R Número inteiro do tipo unsigned char que define o valor de RED do primeiro ponto, da primeira linha, da imagem 
G Número inteiro do tipo unsigned char que define o valor de GREEN do primeiro ponto, da primeira linha, da imagem 
B Número inteiro do tipo unsigned char que define o valor de BLUE do primeiro ponto, da primeira linha, da imagem
R Número inteiro do tipo unsigned char que define o valor de RED do segundo ponto, da primeira linha, da imagem
G Número inteiro do tipo unsigned char que define o valor de GREE do segundo ponto, da primeira linha, da imagem
B Número inteiro do tipo unsigned char que define o valor de BLUE do segundo ponto, da primeira linha, da imagem
...... ....
....... .....
R Número inteiro do tipo unsigned char que define o valor de RED do ÚLTIMO ponto, da primeira linha, da imagem
G Número inteiro do tipo unsigned char que define o valor de GREE do ÚLTIMO ponto, da primeira linha, da imagem
B Número inteiro do tipo unsigned char que define o valor de BLUE do ÚLTIMO ponto, da primeira linha, da imagem
R Número inteiro do tipo unsigned char que define o valor de RED do primeiro ponto, da SEGUNDA linha, da imagem 
G Número inteiro do tipo unsigned char que define o valor de GREEN do primeiro ponto, da SEGUNDA linha, da imagem 
B Número inteiro do tipo unsigned char que define o valor de BLUE do primeiro ponto, da SEGUNDA linha, da imagem 
..... .....
...... .....
.... ....
..... ....
.... .....
R Número inteiro do tipo unsigned char que define o valor de RED do ÚLTIMO ponto, da ÚLTIMA linha, da imagem 
G Número inteiro do tipo unsigned char que define o valor de GREEN do ÚLTIMO ponto, da ÚLTIMA linha, da imagem 
B Número inteiro do tipo unsigned char que define o valor de BLUE do ÚLTIMO ponto, da ÚLTIMA linha, da imagem 


Programa de conversão de Imagens


Para obter imagens no formato descrito acima utilize o programa ConvImg (Versão para Windows  Versão para Linux ).
Na versão para Linux, este programa converte uma imagem JGP para DAT.
Na versão para Windows, este programa converte uma imagem BMP para DAT.

A ativação do programa pode ser feita das seguintes formas:

ConvImg Teste.jpg Lê a imagem 'Teste.jpg' e converte para Teste.dat  (funciona no Linux)
ConvImg Teste.bmp Lê a imagem 'Teste.bmp' e converte para Teste.dat  (funciona no Windows)
ConvImg Teste.jpg  -DEBUG Lê a imagem 'Teste.jpg', converte para Teste.dat e imprime na tela os dados da imagem.
Pode ser usado para visualizar os dados da imagem.  (funciona no Linux)
ConvImg Teste.bmp  -DEBUG Lê a imagem 'Teste.bmp', converte para Teste.dat e imprime na tela os dados da imagem.
Pode ser usado para visualizar os dados da imagem. (funciona no Windows)
ConvImg Teste.dat Lê a imagem 'Teste.dat' e converte para Teste.jpg  (funciona no Linux)
Lê a imagem 'Teste.dat' e converte para Teste.bmp  (funciona no Windows)


Em todos os casos a imagem é exibida na tela.