IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

GDI bitmap monochrome->couleur


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut GDI bitmap monochrome->couleur
    Je suis pas sur d'être dans le bon forum mais j'aurai besoin de convertir un bitmap monochrome en couleur et je ne sais pas comment faire.
    Si quelqu'un pouvai m'aider, ce serai vraiment extraordinaire.

    Merci d'avance à tous ceux qui prendront le temps de lire ce message

  2. #2
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    pour passé de couleur a noir et blanc je verais comment faire

    mais pour un bitmap qui est noir et blanc, le rendre en couleur ... je voi vraiment pas comment extrapolé la couleur de chaque pixel

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    En fait je veux pas qu'il me transforme mes pixels noirs et blancs en couleur, je veux juste qu'il me considère l'image telle qu'elle est en couleur.
    Le problème que j'ai, c'est que je fai des analyses graphiques en couleur sur l'image que je stock dans mon context de mémoire pour éviter qu'il me refasse mes tracé à chaque rafraichissement, et à chaque rafraichissement, mes tracés de couleur repassent en noir et blanc.

    En utilisant le même code avec la même image passé en couleur sous paint(ya toujours que du noir et du blanc sur l'image) ça marche. Le truc, c'est que le plugin que je développe doi scanner les images en monochrome et les analysé aussitot, donc j'aimerai pouvoir faire comme sur paint et lui dire que l'image c'est une image couleur.

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Tu dois utiliser la fonction CreateDIBSection() pour créer un bitmap couleur (24 ou 32 bits, c'est selon: Un bitmap 24 bits peut être directement sauvegardé sur le disque mais est plus lent à gérer, tandis qu'un bitmap 32bits est plus rapide mais est illisible pour plusieurs éditeurs d'image, dont la plupart des versions de paint).

    Et ensuite, tu peux le sélectionner dans ton DC mémoire.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Ok, mais avec CreateDIBSection, je créé une image de couleur mais je veu pas créé une nouvelle image, je veu changer les propriétés de couleur de mon image monochrome. Si j'ai beien compris, il faudrai que je change le bitmap ifo et le bitmapinfoheader mais je sais pas comment faire

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Excuse moi, j'raconte n'importe quoi, ça ma l'air pas mal createDIBSection, c'est juste que je sais pas m'en servir, qu'est-ce que je dois lui mettre en paramètre?

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    À ma connaissance, tu ne peux pas changer le format de couleur d'une image en claquant des doigts. Tu dois créer une nouvelle image et copier la vieille dans la nouvelle.

    Pour créer une image 24 bits ou 32 bits avec CreateDIBSection(), c'est assez facile:
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	int cx = (largeur);
    	int cy = (hauteur);
    	bool bBasEnHaut = false; //(Généralement, on se moque du sens de stockage)
     
    	//Création d'une image 32 bits
    	BITMAPINFO bi = {
    	 {sizeof(bi.bmiHeader), cx, (bBasEnHaut ? cy : cy), 1, 32, BI_RGB, 0, 0, 0, 0, 0},
    	 {{0,0,0,0}}
    	 };	
    	LPVOID pt_bits = NULL;
    	HBITMAP hNouveauBitmap = CreateDIBSection(NULL, &bi, DIB_RGB_COLORS, &pt_bits, NULL, 0);
    Comme tu le vois, beaucoup de paramètres sont nuls. Il me semble que pour un bitmap 24 bits, la seule différence est qu'il faut remplacer le 32 par 24.
    Par contre, pour des bitmaps 16 bits ou moins, c'est plus compliqué.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    D'accord donc avec ça, je créé ma nouvelle image avec le format que je veux(en l'occurence, du 24bits, c'est tres bien) mais comment je dois faire pour copier celle qui est en noir&blanc dedans?

  9. #9
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Quelques CreateCompatibleDC(), quelques SelectObject() et un BitBlt() (sans oublier d'annuler les SelectObject() à la fin).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Ok merci beaucoup, ça marche nickel, une semain que je suis dessus, la libération...

    Encore merci

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Février 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 36
    Par défaut
    Pendant que j'y suis, j'ai un problème quand je passe une fenêtre par dessus celle ou j'affiche mon image, les couleurs s'inverse (seulement quand j'agradi la fenêtre qui est par dessus vers la gauche ou vers le haut), je ne sais pas d'ou ça peu venir...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. convertir une image BMP en Bitmap monochrome?
    Par byubi dans le forum ImageJ
    Réponses: 3
    Dernier message: 31/03/2009, 21h42
  2. gdi ,Bitmap, ajouter du texte
    Par freehair dans le forum MFC
    Réponses: 3
    Dernier message: 29/02/2008, 10h09
  3. [100% GDI] DC avec une couleur transparente....
    Par cyber_N dans le forum MFC
    Réponses: 6
    Dernier message: 20/11/2005, 11h41
  4. Réponses: 3
    Dernier message: 12/04/2005, 15h56
  5. Pb Lecture de bitmap monochrome
    Par Loïc38 dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/07/2002, 18h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo