Je développe des fonctions d'imagerie (oui, je veux VRAIMENT réinventer la roue pour diverses raisons).
Je copie des bitmaps dans des tableaux de caractères non signés, mais j'ai un problème avec la taille des octets par rapport au format des pixels de l'image.
par exemple, beaucoup d'images sont fournies en 24 bits par pixel pour la représentation RVB, donc c'est plutôt facile, chaque pixel a 3 caractères non signés (octets) et tout le monde est content.
Cependant, parfois, le RVB a des types plus bizarres comme 48 bits par pixel, donc 16 bits par canal de couleur. Copier l'image entière dans le tableau d'octets fonctionne bien, mais c'est lorsque je veux récupérer les données que les choses deviennent floues.
Actuellement, j'ai le code suivant pour obtenir un seul pixel pour les images en niveaux de gris
unsigned char NImage::get_pixel(int i, int j)
{
return this->data[j * pitch + i];
}
NImage::data est un tableau de caractères non signés.
Cela renvoie un seul octet. Comment puis-je accéder à mon tableau de données avec différents formats de pixels ?