Il y a actuellement 212 visiteurs
Jeudi 20 Mars 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 Installer windows 10
BonsoirJe souhaite formater completement le disque dur de mon pc (le seul et unique qui contient windows)Comment faire .? telecharger fichier image iso windows sur DD externe?Merci
Réponses: 2

Message Activation windows par téléphone
Salut Bon la grande question !!! Microsoft a arrêter l'activation par téléphone sans me prévenir ou quoi ? mais je ne pense pas...Plus sérieusement, l'histoire c'est que j'ai voulu réutiliser une clé Win 10 pro ( sur la même machine bien sur ) et celle que tu achètes ultra pas cher pour une sec ...
Réponses: 5

Message Nettoyage de Windows Update impossible
Bonjour, je ne sais pas si ça a un rapport avec ma récente installation de Windows 11 en 24H2, mais en fait parfois au démarrage de mon pc je nettoie les fichiers temporaires, et la, ça fait plus d'une semaine que j'essaie de nettoyer Windows Update via l'utilitaire de Windows 11 et ça ne fonctionne ...
Réponses: 0

Message Problème mise à jour windows 11
Salut à tous, j'ai un souci sur mon ordinateur hp tout en un, à l'époque de la sortie de Win11 j'vavais forcé le passage car mon ordinateur n'avait les prérecquis, tout a toujours bien fonctionner sans problème, sauf depuis peu, je ne peux plus faire de MAJ sur windows update, il y a écrit "Vou ...
Réponses: 8

Message [Réglé] S'affranchir du code PIN Windows
Bonjour à tous et meilleurs voeux !Comme je suis seul à me servir de mes machines, je souhaitais supprimer la demande de code PIN de Win 10.J'ai l'ai donc supprimé mais c'est Microsoft qui ne l'entend pas comme çà: Il demande le mot de passe Microsoft à la place.....Peut on s'affranchir de ces optio ...
Réponses: 2

Message comment changer la couleur des bordures ?
Salut tout le mondeAvec regret, beaucoup de difficultés, je suis passé à windows 11 que je n'arrive pas à apprécier, windows 10 etait beaucoup plus facile évident simple pour moi sur windows 11 ils ont fait une usine à gaz pour exemple avant faire une capture écran etait simple, j'appuyais sur mon c ...
Réponses: 7

Message windows 11 impossible ouvrir securite windows
Salut tout le mondeEncore un problème depuis que j'ai migré sur windows 11 à partir de windows 10 depuis update comme sur ma capture écran en accédant par paramètres puis confidentialité et sécurité Windows, je ne peux pas agir en cliquant sur zone de sécurité et les autres commandes, zones de prote ...
Réponses: 56


Qui est en ligne

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


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