Salut à tous,
J'ai un problème pour charger une ressource de mon programme en utilisant MFC, mais sans que leur format soit converti.
Je m'explique : J'utilise par exemple la séquence suivante :
Sauf que... si mon écran est en 32 bits, je récupère une image 32 bits, et si l'écran est en 16 bits, j'obtiens une image 16 bits.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CBitmap bitmap; bitmap.LoadBitmap(IDB_REPERE3DB); BITMAP BitmapInfo = { 0 }; bitmap.GetBitmap(&BitmapInfo); // ici j'alloue l'espace mémoire qu'il faut pour les données bitmap.GetBitmapBits( imgsize, pBitmapData );
Il semblerait y avoir une sorte de conversion implicite : IDB_REPERE3DB, à l'origine, est une image sur 8 bits (niveaux de gris).
Autant ça ne me gênerait pas d'avoir du 32 bits, si je lis la composante rouge je m'y retrouve, autant en 16 bits je perds des données dans la conversion, et il est très important que lorsque j'ai une valeur à 1 sur un pixel, je lise un 1 et pas autre chose (genre un 0).
Connaissez-vous un moyen de récupérer l'image d'origine, en 8 bits, ou en tout cas un moyen d'éviter de recevoir du 16 bits ?
Partager