Il y a actuellement 238 visiteurs
Samedi 06 Décembre 2025
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

api windows gdi c++ bmp monochrome->couleur?

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

api windows gdi c++ bmp monochrome->couleur?

Message le 21 Fév 2008 14:07

Bonjour,

Je cherche à passer une image bitmap monochrome en couleur dans un programme cpp utilisant l'api windows GDI.

Si quelqu'un serai comment faire, ce serai vraiment magique.

Merci d'avance

PS:Si vous avez besoin de plus de détails, n'hésitez pas à demander...
freehair
Visiteur
Visiteur
 
Messages: 6
Inscription: 21 Fév 2008 13:59
 


Message le 21 Fév 2008 15:15

Salut,

Que souhaites-tu faire exactement avec ce progrtamme C++ ?
Uniquement une conversion NB -> couleur sur un fichier bitmap ? Utiliser GDI est obligatoire ?
Avatar de l'utilisateur
coyote89
PC-Infopraticien
PC-Infopraticien
 
Messages: 7862
Inscription: 07 Mai 2003 17:39
Localisation: Chine :)
 

Message le 21 Fév 2008 15:30

En fait je dois faire un plugin qui scan une image monochrome, et qui fai une analyse en traçant des formes géométriques de couleur sur l'image.

Mon programme marche nickel sauf que lors du rafraichissement de la fenêtre je perd la couleur.

Le problème vien de l'image monochrome car j'ai essayé avec la même image modifié sous paint pour qu'elle soit en couleur ça marche.

Le truc c'est que l'image doit être scanner et analysé de suite apres la scannerisation donc je sais pas comment rendre l'image en couleur apres la scannerisation en monochrome.

Voici en gros mon code actuel


Code: Tout sélectionner
void InitialiseImageMemoire()//Initialise le context mémoire avec l'image BMP du disque
{
   hDC_Area = (HDC)PA_GetUpdateHDC();
   hDC_Memory =CreateCompatibleDC(hDC_Area);
   SetStretchBltMode(hDC_Memory,HALFTONE);
   hBmp_Memory = (HBITMAP)LoadImage(NULL,"C:\TEST4.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE+LR_CREATEDIBSECTION);
   //hBmp_Memory2 = (HBITMAP)LoadImage(NULL,"C:\TEST.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
   GetObject(hBmp_Memory, sizeof(BmpTmp), &BmpTmp);//BmpTmp->BITMAP
   DrawState(hDC_Memory,NULL,NULL,(LPARAM)hBmp_Memory,0,0,0,0,0,DST_BITMAP);
   SelectObject(hDC_Memory, hBmp_Memory);
   bImageChargee = true;
}


void RedessineImageZone(PA_PluginParameters params)//Affiche l'image dans la fenêtre 4d et affiche les dessins effectués
{

   if(bImageChargee)
   {   
      ReleaseDC((HWND)PA_GetHWND(0L), hDC_Area);
      ConvertPA_RectToRect( PA_GetAreaRect(params), &AreaRECT);
      DrawState(hDC_Area,NULL,NULL,(LPARAM)&BmpTmp,0,0,0,0,0,DST_BITMAP+DSS_NORMAL);
      SetStretchBltMode(hDC_Area,HALFTONE);
      StretchBlt(hDC_Area, 0, 0, AreaRECT.right-AreaRECT.left, AreaRECT.bottom-AreaRECT.top, hDC_Memory, 0, 0, BmpTmp.bmWidth, BmpTmp.bmHeight,SRCCOPY);
      if(bArcTracé==false)
      {
         DessineArc(RGB(255,0,0),10,250,0,100,true);
         DessineCercle(RGB(0,255,0),10,50,true);
         DessineCercle(RGB(145,212,56),10,300,true);
         POINT hg,bd;
         hg.x = 50;
         hg.y = 200;
         bd.x= 300;
         bd.y= 50;
         DessineRect(RGB(56,210,124),10,hg,bd,false);
         int i,j;
         for(i=(AreaRECT.left+AreaRECT.right)/2-2;i<=(AreaRECT.left+AreaRECT.right)/2+2;i++)
         {
            for (j=(AreaRECT.bottom+AreaRECT.top)/2-2;j<=(AreaRECT.bottom+AreaRECT.top)/2+2;j++)
            {
               ChangePixel(RGB(250,0,250),i,j);
            }
         }
         StretchBlt(hDC_Memory, 0, 0, AreaRECT.right-AreaRECT.left, AreaRECT.bottom-AreaRECT.top, hDC_Area , 0, 0, BmpTmp.bmWidth, BmpTmp.bmHeight,SRCCOPY);
         bArcTracé=true;
      }
   }
}



La ligne commenté

//hBmp_Memory2 = (HBITMAP)LoadImage(NULL,"C:\TEST.BMP",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

utilise la même image en couleur, lorsque je commente celle du dessus à la place, ça marche nickel
freehair
Visiteur
Visiteur
 
Messages: 6
Inscription: 21 Fév 2008 13:59
 



Sujets similaires

Message [Résolu] La sauvegarde de windows ne s'est pas effectuée
Salut tout le monde j'ai essayé de faire une sauvegarde Windows et elle a échoué je pense à cause de deux fichiers de mon téléphone, je ne sais d'ailleurs pas pourquoi elles se trouvent avec? voir captures écran svp pour plus de clarté https://up2sha.re/file?f=VfV04mIhttps://up2sha.re/file?f=kabkYAt ...
Réponses: 5

Message Téléchargement Windows 11
Bonjour,Je vous mets le lien de téléchargement officiel de Windows 11:https://www.microsoft.com/fr-fr/software-download/windows11Bonne journée.
Réponses: 42

Message Passage à Windows 11 (encore)
Bonjour à tous,dernièrement je suis passé à Windows 11 pour mon PC fixe et mon laptop. Tout s'est bien passé.Aujourd'hui, depuis hier en fait, à la demande de mon fils qui se réveille un peu tard, j'essaie de faire de même sur son PC fixe et j'ai des questions.Tout d'abord, les caractéristiques:- Pr ...
Réponses: 4

Message problème d'installation Windows 11 sur pc Asus
Bonjour,Pourriez-vous m'aider pour effectuer l'installation de Windows 11 sur un pc gamer " Asus G11 CD K" acheté en 2018 car je n'arrive pas à la finaliser car à 77 %, il redémarre et ensuite cela m'affiche "reboot and select proper boot device or insert boot media in selected boot ...
Réponses: 5

Message [Réglé] Windows 11 - Curseul latéral de défilement
Bonjour à tous,je viens d'installer Win11 et je découvre que le curseur latéral de défilement (à droite de l'écran) est au moins deux fois plus étroit que pour Win10. Ce n'est pas très pratique. Y a-t-il un moyen de changer ça? Merci.
Réponses: 6

Message [Réglé] Téléchargement Windows 11 : mise à jour Bios ?
Bonjour à tous, la date limite pour le transfert de W10 vers W11 approche. Que voulez-vous, je traine... 1 - Il n'y a pas de question bête mais quand même: faudra-t-il réinstaller tous les programmes après W11? Tous mes documents sont sauvegardés sur un disque différent (externe).2 - La méthode su ...
Réponses: 29

Message mot de passe windows
Bonjour,Comment faire pour ne plus avoir besoin de taper le mot de passe windows a chaque fois que je démarre pon pc.Merci.Cdt
Réponses: 3


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 4 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.
cron