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 :

Ouvrir une image avec CxImage


Sujet :

MFC

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Points : 24
    Points
    24
    Par défaut Ouvrir une image avec CxImage
    Bonjour a tous

    Je suis actuellement en stage de fin de DUT GEII et il m'est demandé de mettre en oeuvre un petit prog avec VC++ et CxImage.
    J'ai fait de longues recherches sur internet mais je n'ai pas trouvé comment bien l'utiliser.

    Je souhaiterai, pour le moment, pouvoir ouvrir une image avec CxImage dans une appli MFC.
    Si quelqu'un pouvais me guider pour faire ca...

    Merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Points : 126
    Points
    126
    Par défaut
    Tu dois tt d'abord compiler la librairie avec les formats d'image que tu veux savoir lire.
    Ensuite dans ton programme tu inclus les librairies que tu veux. Moi j'utilisais jpg et png. J'ai du inclure c'est librairie ci: jpeg.lib png.lib zlib.lib cximage.lib
    Ensuite tu fais ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #include "ximage.h"
     
    CxImage m_Image;
     
    // charger
    m_Image.Load("PathChemin", CXIMAGE_FORMAT_JPG);	
     
    // afficher
    m_Image.Stretch(m_PictureCtrl.GetDC()->m_hDC,m_RectTailleImage);
    Vala j'espere que ca peut te depanner

  3. #3
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par pitch21
    Ensuite tu fais ceci:

    Sans oublier de bien effacer les objets chargés et alloués

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2004
    Messages : 189
    Points : 126
    Points
    126
    Par défaut
    bien entendu :-) c'etait juste un depart

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Points : 24
    Points
    24
    Par défaut
    Merci pour la réponse rapide
    Mais je connais pas du tout vc++ et MFC
    Entre les classes doc, view, etc, je comprend rien

    Ou est-ce qu'il faut mettre tout ca ?

    Je voudrais qu'en cliquant sur fichier/ouvrir on puisse ouvrir
    une image de son choix. Ca me ferait une bonne base pour la suite.

    Je vous remercie

  6. #6
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par le-makinero
    Merci pour la réponse rapide
    Mais je connais pas du tout vc++ et MFC
    Entre les classes doc, view, etc, je comprend rien

    Ou est-ce qu'il faut mettre tout ca ?

    Je voudrais qu'en cliquant sur fichier/ouvrir on puisse ouvrir
    une image de son choix. Ca me ferait une bonne base pour la suite.

    Je vous remercie
    Eh bien soit surcharger la methode de CMyDoc::OnFileOpen soit modifier la base de registres pour que l'appli ouvre des fichiers bmp et autres lorsqu'on clique sur l'icone "ouvrir"
    Si VC6 , dans App Wizard on definit a une etape le type de fichier a ouvrir..

    Apres avoir surcharge "OnOpenDocument" , simplement obtenir un pointeur sur la CView et appeler Invalidate

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 67
    Points : 24
    Points
    24
    Par défaut
    Je travaille sous Visual Studio .NET 2003.
    OnFileOpen est dans CApp.
    Ca ne marche pas si je le laisse la ?

  8. #8
    Membre du Club Avatar de Cirdan Telemnar
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 69
    Points
    69
    Par défaut
    c pas tres dur (exemple fichier bmp) au prealable il faut crée deux objet dans ta classe m_sBitmap de type CString(pour le nom de l'image) et m_bmpBitmapde type CBitmap (pour l'image)
    dans ta methode appelé quand tu f fichier/ouvrir
    tu crée un objet de type CFileDialog
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    OpenFilter="Bitmap File (*.bmp)|*.bmp||"; //filtre pour le tipe de fichier
    CFileDialog dlg(true,".bmp",m_sBitmap,OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_PATHMUSTEXIST,OpenFilter,AfxGetMainWnd()); //la boite de dialogue d'ouverture de fichier
     
    if(dlg.DoModal()==IDOK) //si on ferme cette boite par l'appuye sur OK
    {
             m_sBitmap=dlg.GetPathName(); //on recup le nom du fichier 
             HBITMAP hBitmap=(HBITMAP)::LoadImage((AfxGetInstanceHandle),m_sBitmap,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION); //on recup le handle de l'imega
             if(hBitmap)
             {
                     if(m_bmpBitmap.DeleteObject()) m_bmpBitmap.Detach(); //on efface l'ancienne image
                     m_bmpBitmap.Attach(hBitmap); //on attache la nouvelle
             }

Discussions similaires

  1. comment ouvrir une image avec photo editor à partir d'un lien?
    Par eric60 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/04/2008, 09h28
  2. [DOM] Ouvrir une image avec legende
    Par JeanMarc_T2k dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/10/2007, 17h11
  3. Boite de dialogue "Ouvrir une image" avec Aperçu
    Par avigeilpro dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 04/09/2007, 17h52
  4. Ouvrir une image avec Photo Editor
    Par malingue dans le forum Access
    Réponses: 1
    Dernier message: 07/07/2006, 16h54
  5. Ouvrir une image avec paint depuis un formulaire
    Par gui38 dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 16h40

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