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 unsigned char mais j'ai des problèmes avec la taille des octets par rapport au format de pixel de l'image.
Par exemple, de nombreuses images sont fournies avec 24 bits par pixel pour une représentation RGB, donc c'est plutôt facile, chaque pixel a 3 unsigned chars (octets) et tout le monde est content
mais parfois le RGB a des types plus étranges comme 48 bits par pixel donc 16 bits par canal de couleur. Copier toute l'image 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 unsigned char
Cela renvoie un seul octet. Comment puis-je accéder à mon tableau de données avec différents formats de pixel ?