Il y a actuellement 92 visiteurs
Vendredi 30 Juillet 2021
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 ?
Walk of shame, walk of game... what uuuup !
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 Comment écouter la radio sur Windows 10
Salut tout le monde!Comment écouter la radio sur un PC Windows 10, j'ai un ordinateur HP 2020 et je veux écouter la radio dessus mais je ne peux pas l'ouvrir, quelqu'un peut-il m'aider.Merci!
Réponses: 2

Message Pc portable HP qui n'accède pas à Windows
Bonjour, j'ai un soucis avec un pc portable de la marque HP, après une installation neuve de windows (l'ancien était corrompu) le PC ne parvient plus à boot sur le disque, le même disque qu'avant mais j'ai essayé avec un autre et même résultat. Il reste figé sur l'écran HP soit vide avec simplement ...
Réponses: 0

Message Le Wifi ne fonctionne pas après la réinstallation de Windows
Bon après-midi, j'ai réinstallé Windows sur l'ordinateur portable Lenovo IdeaPad 310, et le wifi montre qu'il est éteint, les pilotes sont tous là, j'ai mis les officiels du broadcom et de lenovo, il ne répond pas à ce bouton du clavier , la luminosité des boutons adjacents fonctionne, pouvez-vous m ...
Réponses: 3

Message windows 11 pas compatble avec mon pc
SALUT tout le monde ! J'ai téléchargé sur le site le crabe info le logiciel PCHealthCheck qui soi-disant Vérifie si mon PC est compatibleavec Windows 11 et mauvaise surprise il me dit qu'il ne sera pas compatible je voudrais savoir ce que vous en pensez j'ai du mal à le croire vu ma configurati ...
Réponses: 42

Message windows insider page blanche
Salut les gens................. voici mon problème j'ai activé par la passer Windows insider mais je me retrouve avec une page blanche voici :comment retrouver une page normale svp ? https://i.postimg.cc/CxhC18vk/windows-i ... lanche.png
Réponses: 5

Message Environnement Windows avant l'installation
Lorsque j'ai installé Windows 10 avant 2 ou 3 ans, j'ai cliqué sur une combinaison de touches inconnue et elle est allée directement dans l'environnement de pré-démarrage. Et je peux installer ce que je veux avant d'installer Windows, quelle est cette combinaison de touches ?Non, je viens d'avoir Wi ...
Réponses: 1

Message Alerte Windows
Ces temps je reçois une alerte Windows qui me dit que mon Windows va bientôt expirer. Pourtant ça fait déjà plusieurs années que j'utilise le même Windows. De quoi s'agit-il au juste?
Réponses: 3


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


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