Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Boite de dialogue Afficher une image 256niveaux [ Archives / Au secours ] (SyN42)

vendredi 28 octobre 2005 à 13:44:17 | Boite de dialogue Afficher une image 256niveaux

SyN42

Bonjour,

Dans ma boite de dialogue j'affiche une image dans un 1er temps en couleur avec la fonction StretchDIBits

int OldMode = SetStretchBltMode(c->GetSafeHdc(),COLORONCOLOR);
StretchDIBits(c->GetSafeHdc()
                        ,0,rect.bottom,rect.right,-rect.bottom,
                        0,0,bmi.bmiHeader.biWidth,
                        bmi.bmiHeader.biHeight,
                        buffer,
                        &bmi,
                        DIB_RGB_COLORS,SRCCOPY);
SetStretchBltMode(c->GetSafeHdc(),OldMode);           

c est mon CDC*.
buffer mon pointeur pixel
et bmi mon BITMAPINFO

J'extrait le plan bleu de cette image et lorsque je veux l'afficher, j'obtiens des couleurs qui sont tous sauf du niveau de gris.
Je pense a un probleme de palette mais je ne sais pas trop comment la remplir mon BITMAPINFO bmi.bmiColors

  for (int i=0; i <256; i++)
  {
        bmi.bmiColors[i].rgbBlue = i;
        bmi.bmiColors[i].rgbGreen = 0;
        bmi.bmiColors[i].rgbRed = 0;
        bmi.bmiColors[i].rgbReserved = 0;
   }

ca ne marche pas...

Merci pour votre aide.

vendredi 28 octobre 2005 à 15:04:02 | Re : Boite de dialogue Afficher une image 256niveaux

SyN42

Apparament,
for (int i=0; i <256; i++)
  {
        bmi.bmiColors[i].rgbBlue = i;
        bmi.bmiColors[i].rgbGreen = 0;
        bmi.bmiColors[i].rgbRed = 0;
        bmi.bmiColors[i].rgbReserved = 0;
   }

ne marche pas car bmi.bmiColors est déclaré dans windows en tagRGBQUAD[1]!

alors qu'il devrait etre tagRGBQUAD[256]
comment puis-je remédier au problème?

vendredi 28 octobre 2005 à 17:29:23 | Re : Boite de dialogue Afficher une image 256niveaux

PLUiK

Salut
Je pense que tu peux allouer la mémoire dynamiquement (enfin c'est ce que je pense):
BITMAPINFO* pbmi = sizeof (BITMAPFINFO) + 255 * (sizeof (RGBQUAD)); //255 car la structure BITMAPINFO en a déjà un, enfin si je ne me trompe pas ^^
et n'oublie pas le free


mercredi 2 novembre 2005 à 17:37:09 | Re : Boite de dialogue Afficher une image 256niveaux

SyN42

Si je peux me permettre, tu n'alloue rien comme ca tu met égale un pointeur a un entier.. Le compilateur n'aime pas trop..

jeudi 3 novembre 2005 à 13:51:39 | Re : Boite de dialogue Afficher une image 256niveaux

PLUiK

Mince me suis trompé ! Il manque le malloc et il y a aussi d'autres fautes... Désolé, je rectifie:
BITMAPINFO* pbmi = malloc (sizeof (BITMAPFINFO) + 255 * sizeof (RGBQUAD));



Cette discussion est classé dans : image, boite, dialogue, bmi, bmicolors


Répondre à ce message

Sujets en rapport avec ce message

Affichage d'une image de fond dans une boite de dialogue [ par Calimero150 ] Coucou tout le monde!Je cherche un moyen d'afficher une image de fond dans une boite de dialogue donc si quelqu'un peut m'aider, qu'il n'hésite pas! M charger une image dans une boite de dialogue [ par lysane ] j'ai creer une application win32 de type dialog baseje souhaiterai charger une image de fond qui se trouve dans un fichier a partj'ai trouver sur le s L'image n'apparait pas dans la boite à dialogue. [ par marcel6566 ] VC++6 - MFCJ'ai créé une boite à dialogue lié à la class CIMAGE et je voudrais afficher l'image IDB_BITMAP1 dedans.J'ai défini CBitmap image;J'ai rajo Insérer une image de fond sur une boite de dialogue [ par bethany ] Bonjour,Un ami du forum, glipper, m'a bien aidé à faire une treeview dans une boite de dialogue. Maintenant c'est vrai que le fond gris ca rend pas gé Affichage d'une image dans une boite de dialogue [ par meem ] Bonjour,J'essaie d'afficher un bitmap dans une boite de dialogue sous VC++.NET.Voici le code que j'utilise :void InterfaceContour::OnBnClickedButton1( Intégrer une image JPEG dans une Boite de dialogue en MFC [ par picinounours51 ] Salut,Je voudrais savoir comment on crée une boite de dialogue MFC et intégrer une image JPEG dans celle-ci.J'ai essayé de comprendre en lisant différ Afficher une Image bmp dans une boite de dialogue??? [ par Khymerion ] Bonjour, je suis débutant et j'ai un projet informatique pour mon école pour lequel j'ai besoin d'afficher une image dans une boite de dialogue. De pl Insertion d'image dans une boite de dialogue (MFC) [ par tigerskin ] Bonjour !Quelqu'un pourrait-il me dire quelle est la fonction qui permet d'insérer une image dans une boîte de dialogue, sachant que j'utilise les MFC Image de fond Boite de dialogue MFC [ par Caleos ] Bonjour, voilà j'ai remarqué que beaucoup de sujet a propos de mon probleme ont été posé mais aucun d'eux ( ou je n'ai vraiment pas fait attention) ne Afficher mon image ds ma boite de dialogue [ par moumoucha ] Bonsoir;est ce ke kelk'un a une idée sur comment afficher une image dans une boite de dialogueSVP,j'ai besoin d'un code en c++.Je suis vrmnt blokée ;a


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,250 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.