Il y a actuellement 121 visiteurs
Mardi 21 Mars 2023
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 windows 11 bridé
Bonjour j'ai récupéré un pc portable qui dispose de Windows 11 mais il est bridé. Impossible d'installer autre chose que des applis Microsoft. Comment me débarrasser de ça svp et comment passer à une version "normal" ? Merci
Réponses: 3

Message [RESOLU] Lenovo IdeaPad 1-14I GL05 - Boot linux & windows
Bonjour à toutes et tousJ'ai un pc portable, Lenovo IdeaPad 1-14I GL05, et je n'arrive pas à mettre deux systemes "reconnus"...https://pcsupport.lenovo.com/fr/fr/products/laptops-and-netbooks/1-series/1-14igl05/threestepsParfois l'un s'ouvre, parfois l'autre ?J'ai testé avec "boot-rep ...
Réponses: 4

Message GPU invalide sous Windows 10
BonjourMerci
Réponses: 8

Message comment sortir du mode s de windows 10 sur pc Lenovo
Bonjour,J'ai un pc portable Lenovo modèle "ideapad 3 15ada05" pourriez-vous m'aider à sortir du mode S de Windows 10 ? J'ai essayé en cliquant sur activation puis sur :"accéder au store" "Basculer vers "Windows 10 famille " "Obtenir" mais je voudrai s ...
Réponses: 9

Message Installation de Windows 11 sur pc non compatibles
Bonjour,Pourriez-vous m'indiquer si vous avez déjà installer Windows 11 sur pc de bureau non compatible qui a Windows 10 en 32 bits je n'y arrive pas car je n'ai pas le fichier "MOSETUP dans le registre à modifier pour faire l'installation, donc impossible ? "HKEY_LOCAL_MACHINE_SETUP SYS ...
Réponses: 4

Message Consommation de RAM de Windows 11
Salut j'aimerais savoir si Windows 11 consomme plus que de mémoire vive que Windows 10 ? Demande à Gogole ... https://www.lesnumeriques.com/appli-log ... 69601.html++ superpatol
Réponses: 1

Message bulles d'aide Windows 11
Bonjour,Le principe est le même mais ça a changé légèrement. Ça donne :Panneau de configuration > Système et Sécurité => Là on tape ajuster dans la fenêtre en haut à droite > On descend sur Système > Régler l'apparence et les performances de Windows et on a la fenêtre ou on peut décocher ...
Réponses: 8


Qui est en ligne

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


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