Fonction de recuperation de couleur rgb

Signaler
Messages postés
40
Date d'inscription
mercredi 26 mars 2003
Statut
Membre
Dernière intervention
3 septembre 2008
-
Messages postés
40
Date d'inscription
mercredi 26 mars 2003
Statut
Membre
Dernière intervention
3 septembre 2008
-
Salut tout le monde ,



j'utilise des loader de texture bmp/ jpg/ tga/ pcx et ceci me cree une
texture au format unsigned byte* data[largeurimage * hauteurimage *
byteperpixel] que je passe en parametre a la fonction



gluBuild2DMipmaps(GL_TEXTURE_2D, bpp, width, height,type, GL_UNSIGNED_BYTE, data);

ou a

glTexImage2D(GL_TEXTURE_2D, 0, bpp, width, height, 0, type, GL_UNSIGNED_BYTE, data);



en fonction du filtre que je veux appliquer.



bref je cherche une fonction qui me permettrait de stoker les valeur RGB de cette image

pixel par pixel dans un tableau a 2 dimensions
tab[largeurimage][hauteurimage] soit a la creation de ma texture soit
plus tard une fois cette image stokee dans une variable;



exemple :



for(i = 0 ; i < largeur;i++)

for(j = 0; j < hauteur;j++)

{

tab[i][j] = GetColorRGB(data, i,j); // ou data est mon image au format unsigned byte*

}

si quelqu un connais un lien ou peut me fournir le bout de code
neccessaire a ma fonction ca serait vraiment cool merci d'avance


Tous les chemins mènent au RHUM !!!!!!!!!!!!!!!!!!!..............................

2 réponses

Messages postés
326
Date d'inscription
vendredi 13 août 2004
Statut
Membre
Dernière intervention
2 novembre 2007
2
Salut,

En tenant compte que i est l'indice des lignes et j l'indices des colonnes, tu auras besoin de la largeur (la difference entre 2 i consecutif est une ligne donc une largeur...), en faisant également l'hypothèse que ton data soit rangé ligne par ligne (apparement oui, vu que tu les passes a OpenGL tel quel.)

byteparpixel tab[height][width];

byteperpixel GetColorRGB(unsigned char* data, int width, int i, int j)
{
return data[i*width+j];
}

Tu fais du C ou C++ ?
parce qu'il faudra allouer le byteparpixel tab[height][width];

KeniiyK
Messages postés
40
Date d'inscription
mercredi 26 mars 2003
Statut
Membre
Dernière intervention
3 septembre 2008

ben je fais du c++

j'ai reussi a faire ce que je voulais mais il a fallu que je creer un
loader BMP particulier pour ma heightmap bref au lieu que mon loader me
creer un unsigned char Data[Width*Height*Bpp] il me creer un tableau de
int * Map[Height][width] ou chaque case de mon tableau comprend un
pointeur vers un int c'est a dire

Map[0][0][0] = rouge Map[0][0][1] = vert Map[0][0][2] = bleu;



et moi je voudrait pouvoir convertir mon tableau Data[Width*Height*Bpp]
en Map[Height][width] comme ca j'ai juste une fonction a creer et
utiliser mes loaders deja existant pour continuer mon projet.

Tous les chemins mènent au RHUM !!!!!!!!!!!!!!!!!!!..............................