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

Qt Discussion :

Affichage basique d'une image


Sujet :

Qt

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Par défaut Affichage basique d'une image
    Bonjour,

    Malgré la documentation et les sources que j'ai pu trouver sur internet, je n'arrive pas à afficher tout bêtement une image au format png ou jpg sur une fenêtre.

    J'ai essayé les codes suivants sans succès (ça compile mais aucune image ne s'affiche):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <QApplication>
    #include <QtGui>
    
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
    
        QWidget fenetre;
    
        QLabel *label = new QLabel(&fenetre);
        label->setPixmap(QPixmap("image.png"));
        fenetre.show();
    
        return app.exec();
    }
    ou encore en changeant les lignes bleues par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QLabel *labelImage = new QLabel(&fenetre); 
    QImage image("image.jpg"); 
    labelImage->setPixmap(QPixmap::fromImage(image));
    Mes images image.png|image.jpg sont bien dans le repertoire debug du .exe

    J'éspère que vous pourrez me donner un petit coup de main !

    Merci !

  2. #2
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Bonjour

    Pas besoin d'un QWidget, tu peux directement faire un show() avec QLabel (comme avec tous QWidget en fait)

    Après avoir ouvert ton image, affiche la taille pour voir si elle est bien lue.

  3. #3
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    Vérifie que les formats des images ont bien été compilés pour ta version de qt ou de déplacer le répertoire "imagesformat" avec les dll spécifiques à tes formats dans ton répertoire.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 58
    Par défaut
    Essaye une image png avec un chemin absolu si ce n'est pas juste un problème d'accès fichier.

  5. #5
    Membre éclairé
    Avatar de betsprite
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    472
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 472
    Par défaut
    Bonjour,

    Tout d'abord, je vous remercie pour vos réponses !

    Citation Envoyé par gbdivers
    Après avoir ouverte ton image, affiche la taille pour voir si elle est bien lue.
    Pour afficher la taille, je dois regarder dans la doc les méthodes de l'objet QImage ou QPixmap ? Parce que en jetant un coup d'oeil, QImage a l'air d'avoir surtout des méthodes pour gérer les pixels de l'image.

    Citation Envoyé par johnlamericain
    Vérifie que les formats des images ont bien été compilés pour ta version de qt ou de déplacer le répertoire "imagesformat" avec les dll spécifiques à tes formats dans ton répertoire.
    A vrai dire johnlamericain, je ne vois pas vraiment comment m'y prendre :s Tout d'abord, je n'ai pas eu à gérer les dll lorsque j'ai configuré Qt pour Visual Studio 2008 avec le plugin adapté qui permet à VS de trouver tous les dll nécessaires directement. Après, bien sûr, je peux retrouver ou sont ces dlls mais je ne sais pas vraiment lesquels gèrent les formats d'images.
    Aussi, je n'ai pas trouvé dans mon projet de repertoire "imagesformat".

    Citation Envoyé par nosleduc
    Essaye une image png avec un chemin absolu si ce n'est pas juste un problème d'accès fichier.
    Le problème ne semble pas venir d'ici :s

    Je vous remercie !

  6. #6
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Pour afficher la taille, je dois regarder dans la doc les méthodes de l'objet QImage ou QPixmap ? Parce que en jetant un coup d'oeil, QImage a l'air d'avoir surtout des méthodes pour gérer les pixels de l'image.
    fonctions size()

    Le problème ne semble pas venir d'ici :s
    C'at à dire ? Ca donne quoi ?

    J'ai testé ton code chez moi, ça fonctionne sans problème.
    Par contre, la taille de la fenêtre par défaut est de (0, 0). Il faut donc l'agrandir à la main ou ajouter le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        QLabel *label = new QLabel(&fenetre);
        QPixmap pixmap("/home/gbdivers/Bureau/Capture.png");
        label->setPixmap(pixmap);
        label->resize(pixmap.size());
        fenetre.show();

  7. #7
    Rédacteur

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 3 742
    Par défaut
    Citation Envoyé par betsprite Voir le message
    gbdivers :


    Pour afficher la taille, je dois regarder dans la doc les méthodes de l'objet QImage ou QPixmap ? Parce que en jetant un coup d'oeil, QImage a l'air d'avoir surtout des méthodes pour gérer les pixels de l'image.
    Regarde cette fonction : http://qt.developpez.com/doc/4.6/qimage/#size

    Tu peux faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <QtCore/QDebug>
    #include <QtGui/QImage>
     
    QImage monImage("chemin/nomfichier.png");
    qDebug() << monImage.size().width() << "x" << monImage.size().height()
    pour tester la taille de ton image.

    Citation Envoyé par betsprite Voir le message
    johnlamericain :

    A vrai dire johnlamericain, je ne vois pas vraiment comment m'y prendre :s Tout d'abord, je n'ai pas eu à gérer les dll lorsque j'ai configuré Qt pour Visual Studio 2008 avec le plugin adapté qui permet à VS de trouver tous les dll nécessaires directement. Après, bien sûr, je peux retrouver ou sont ces dlls mais je ne sais pas vraiment lesquels gèrent les formats d'images.
    Aussi, je n'ai pas trouvé dans mon projet de repertoire "imagesformat".
    Pour ma part il se trouve dans C:\Qt\4.6.3\plugins\imageformats si ça peut t'aider. C'est normal qu'il ne soit pas dans le répertoire de ton projet. Tu peux copier les dlls dont tu as besoin, qjpeg4.dll par exemple mais tu dois la placer dans un répertoire du nom imageformats à coté de ton exécutable. Pour une image png tu ne devrais pas avoir ce problème donc c'est qu'il vient d'ailleur.

    John

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

Discussions similaires

  1. [ETAT] Affichage conditionnel d'une image
    Par Ithilien dans le forum IHM
    Réponses: 1
    Dernier message: 03/01/2007, 19h46
  2. [VB6] Affichage centré d'une image
    Par Sophie2097 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 12/05/2006, 14h28
  3. Erreur pour l'affichage aléatoire d'une image
    Par bellebiquette dans le forum Langage
    Réponses: 3
    Dernier message: 21/04/2006, 22h45
  4. [Conception] affichage aleatoire d'une image
    Par bellebiquette dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 24/02/2006, 22h58
  5. [Tableaux] Ajouter l'affichage dynamique d'une image
    Par leloup84 dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 09h14

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