Il y a actuellement 278 visiteurs
Samedi 20 Avril 2024
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 bloc note sous windows 11
Bonjour, avec Windows 11 le bloc note a changé de comportement. J'aimerai savoir s'il est possible de revenir à l'ancienne méthode, à savoir que lorsqu?on l'ouvre il n'affiche pas systématiquement tous les notes qui ont été crées avant et à la fermeture lors d'une modif qu'il propose d?enregistrer. ...
Réponses: 1

Message isolation impossible du noyau sur mon pc windows 10
Bonsoir heraclesmerci tout d'abord de me répondre aussi vite, j'ai donc effectué les deux lignes de commande comme tu m'as indiqué, voici le fichier texte : https://www.cjoint.com/c/NDluFy2UUrJVoici la capture écran générale de mon gestionnaire de périphériques : si cela peut un petit peu t'aider . ...
Réponses: 13

Message Incohérences dans Windows 10 (11?)
Bonjour Couize,C'est lié à la différence entre le nombre de coeurs et le nombre de processeurs logiques. Tout est dit iciPar exemple, lance powershell admin puis copie colle la commande ci-dessous et valide par la touche Entrée de ton clavier.Code: Tout sélectionnerGet-WmiObject -class Win32_proces ...
Réponses: 3

Message Le chat et Windows 10, me trouveras tu ?
CoucouSi tu possèdes Windows 10, alors sache que je me suis caché dedans, quelque part… Arriveras tu a me retrouver ?Un petit indice ? " le chat commente et aide la communauté "A vos écrans
Réponses: 17

Message plantage à répétition de Windows
Bonjours à tous Depuis quelque temps Windows 11 plante aléatoirement en me mettant l'exception logicielle inconnue (0xe0434352) le code erreur apparaît plusieurs fois et à un moment sa freeze mais juste l'image le jeu continue de tournée en arrière plan... Généralement quand ca arrive si je suis su ...
Réponses: 1

Message [Réglé] Impossible d'intaller Windows 10 (SSD)
Bonjour, Bonne année à toute la communauté de PC Informatique. Vous m'avez manquer.Aujourd'hui je suis face à la nouvelle technologie Et ouep, c'est la vie vache qui rie.Je suis confronté à un soucie de compatibilité.En effet, je suis sur un pc Toshiba Satellite C50-A-1JM qui était sous windows 8.1 ...
Réponses: 14

Message encore un probleme mise à jour windows KB5001716
Salut à vous cela commence, j'avoue, à devenir pénible, j'en suis désolé, mais ce soir au 5 mars 2024 est apparu un nouveau problème sur Windows update la mise à jour KB5001716 ne veut pas s'installer, j'ai eu beau redémarrer mon pc pour voir si cela pouvait fonctionner rien à faire cette mise à jou ...
Réponses: 28


Qui est en ligne

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


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