bonjour

je recupère la valeur du pixel d'une image dans un entier. Le pixel est codé en RGB. Cela signifie que mon entier contient 4 informations stockées chacune sur un octet : la valeur pour le rouge, pour le vert, pour le bleu et pour l'alpha.
je souhaite récupérer chacune de ces informations séparément dans un entier.

Pour celà j'ai écrit 3 fonctions opérant chacune un décalage et appliquant un masque pour obtenir les valeurs pour les composantes red, green et blue.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
int 
redFromRGB(int *rgb){
   return ((*rgb >> 16) & 0xff);
}
 
int 
greenFromRGB(int *rgb){
  return ((*rgb >> 8) & 0xff);
}
 
int 
blueFromRGB(int *rgb){
     return((*rgb) & 0xff);
}
Problème : je récupère toujours 0 pour les composants red et green.
Où est mon erreur ?

merci pour votre aide