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+ et affichage d'image avec couleurs transparentes


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut GDI+ et affichage d'image avec couleurs transparentes
    La classe Gdiplus::Graphics dispose de nombreuses surcharges de la méthode DrawImage
    L'une d'entre elles a le prototype suivant:

    Graphics:rawImage(Image*, RectF&, RectF&, Unit, ImageAttributes*)

    ou ImageAttributes est un ptr sur un objet permettant de paramétrer la transparence d'un intervalle de couleurs
    pour une image donnée

    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	graf.DrawImage(&m_imageDeFond, PointF(200, 250) ); //RectF
    	ImageAttributes attrib;
    	attrib.SetColorKey(Color(255, 255, 255), Color(255, 255, 255), ColorAdjustTypeBitmap);//blanc = trasparent 
    	RectF dest(PointF(200.f, 250.f), SizeF((REAL)m_imageDeFond.GetWidth(), (REAL)m_imageDeFond.GetHeight()));
    	RectF source(PointF(0.f, 0.f), SizeF((REAL)m_imageDeFond.GetWidth(), (REAL)m_imageDeFond.GetHeight()));
    	graf.DrawImage(&m_imageDeFond, dest, source, UnitDisplay, &attrib);
    Le compilateur affiche:

    error C2664: 'Gdiplus::Status Gdiplus::Graphics:rawImage(Gdiplus::Image *,Gdiplus::REAL,Gdiplus::REAL,Gdiplus::REAL,Gdiplus::REAL)'
    : cannot convert parameter 2 from 'Gdiplus::RectF' to 'Gdiplus::REAL'

    en fait il croit que je veux utiliser la surcharge suivante:
    Graphics:rawImage(Image*,REAL,REAL,REAL,REAL)

    Or elle n'a rien à voir avec celle que je veuw appeler.

    j'ai beau static-caster pour lui montrer la voie, mais rien y fait.

    Il semblerait que la surcharge bien que listée dans les méthodes de la classe Graphics
    n'ait pas d'implémentation.
    Du moins , c'est ma conclusion.

    Si quelqu'un pouvait essayer et me dire ce que ça donne de son côté,
    je lui serais bien reconnaissant.

    PS: l'éxemple fourni dans la MSDN ne marche pas non plus.

    Merci Codialement le petit dernier.

  2. #2
    Membre confirmé Avatar de stephdim
    Profil pro
    Inscrit en
    Août 2007
    Messages
    462
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 462
    Points : 521
    Points
    521
    Par défaut
    salut,

    dans le header qui définit la classe Graphics, j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #if (GDIPVER >= 0x0110)
        Status DrawImage(
            IN Image *image,
            IN const RectF &destRect,
            IN const RectF &sourceRect,
            IN Unit srcUnit,
            IN const ImageAttributes *imageAttributes = NULL
        )
     
    ...
     
    #endif
    donc cette méthode n'existe qui si GDIPVER >= 0x110

    donc place un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    #define GDIPVER 0x110
    avant de faire l'include sur GdiPlus.h

    mais celà impose d'avoir GDI+ en version 1.1 ... a spécifier dans ton manifeste, pour que ton appli charge la bonne version de GDI+

    @+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Ca expliquerait tout.

    Je savais même pas qu'il y avait une version 1.1 de GDI+

    Désormais avant de poster j'irai fouiner dans les sources.

    Merci à toi stephdim

    Le petit dernier

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Zut il semblerait que gdi+ 1.1 ne soit pas redistributable
    et qu'il ne soit disponible qu'avec Windows Vista ou Office 2003

    En tant que programmeur sur Xp sp3 avec vs2008 ça me disqualifie.

    Si quelqu'un a un truc(légal) pour permettre la programmation de gdi+ 1.1 sur xp sp3 je suis preneur.

    Merci le petit dernier

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Bon j'ai réussi à me procurer le power point viewer 2003 qui contient la dll gdi+ 1.1(version 6)

    mais pour la modification du manifeste c'est l'échec ,je n'ai pas assez de connaissance dessus .

    Si quelqu'un sait comment procéder pour forcer mon aplli à utiliser la bonne dll,
    ou connait une doc ou un ouvrage sur la structure d'un manifeste je suis preneur.

    Cordialement le petit dernier

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

Discussions similaires

  1. [Débutant] affichage des images avec l'echelle de couleur
    Par hadjira10 dans le forum Images
    Réponses: 5
    Dernier message: 23/09/2012, 16h26
  2. [ImageMagick] Affichage d'image avec la fonction imagejpeg()
    Par yuri dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/12/2005, 14h40
  3. Affichage d'image avec API Win32
    Par Chess0 dans le forum Windows
    Réponses: 12
    Dernier message: 14/12/2005, 08h14
  4. PB affichage d'image avec IE
    Par arturo dans le forum Modules
    Réponses: 6
    Dernier message: 25/09/2003, 18h28
  5. [VB6] Affichage d'image avec qlq contraintes
    Par youri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 15h44

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