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 :

Forcer la taille d'un QImage


Sujet :

Qt

  1. #1
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut Forcer la taille d'un QImage
    Bonjour à tous,

    Actuellement sur un projet scolaire, je me retrouve face à un petit probleme.
    Je dois vous avouer que ce probleme ne m'empeche pas d'avancer mais etant legerement perfectionniste sur les bords, j'aimerai le resoudre avant de continuer.
    Toute aide sera donc la bienvenue.

    Voici mon probleme clairement:
    J'ai besoin à un moment donné, d'une visionneuse d'image, qui m'affiche un carré blanc de taille 300x300 avec le texte "aucun aperçu disponible" lorsque aucune image n'est selectionnée et l'image redimensionnée (300x300) lorsqu'une image est selectionnée.
    Le code est un peu simpliste et tout n'est pas codé (l'ecriture dans le carré blanc, par exemple) mais le probleme principal, est le fait que je n'arrive pas à forcer la taille en 300x300 et à redimensionner les images trop grandes.

    Voici mon code:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    #include "dialog.h"
    #include <QtGui>
     
    Dialog::Dialog(QWidget *parent)
      : QDialog(parent)
    {
      setupUi(this);
      QSize size(300, 300);
     
     
      pixmap = new QPixmap(size);
      pixmap->fill();
      label->setPixmap(*pixmap);
     
      connect(toolButton, SIGNAL(clicked()), this, SLOT(getImagename()));
      connect(pushButton, SIGNAL(clicked()), this, SLOT(print()));
    }
     
    void Dialog::getImagename() {
      QString Imagename = QFileDialog::getOpenFileName(this, "Open Image",
                                                      "C:/Documents and Settings",
                                                      tr("Images (*.jpg)"));
      lineEdit->setText(Imagename);
    }
     
    void Dialog::print() {
      pixmap->load(lineEdit->text());
      if (pixmap->isNull())
      label->setText("Aucun aperçu disponible");
      else
      label->setPixmap(*pixmap);
    }
    Je reste disponible pour toutes questions ou info supplementaires.

    Merci par avance.

    Mac & Cheese
    World's greatest inventors: Franklin, Edison and this REESE guy.

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Salut.
    Avec la fonction scaled, surement
    http://qt.developpez.com/doc/4.3/qpixmap/#scaled

  3. #3
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Merci Mongaulois pour ta reponse,

    Mais j'ai fait des recherche avant de poster afin d'eviter de poster inutilement et j'ai trouver cette doc sur l'Assistant Qt et je n'arrive pas à l'utiliser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    QSize size(300, 300);
    pixmap->scaled(size);
    Je garde les arguments par defaut car Qt::IgnoreAspectRatio est censé redimensionner mon image à la taille size.

    Je ne comprend pas pourquoi... est ce que je l'utilise mal?
    World's greatest inventors: Franklin, Edison and this REESE guy.

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    ca ca ne marche pas?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void Dialog::print() {
      pixmap->load(lineEdit->text());
      if (pixmap->isNull())
      {
         label->setText("Aucun aperçu disponible");
      }
      else
     {
        QSize size(300, 300);
        pixmap->scaled(size);
        label->setPixmap(*pixmap);
     }
    }

  5. #5
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Malheureusement non.
    L'image n'est pas du tout redimensionner et le QImage non plu.
    Je vous aurais bien montrer le resultat obtenu mais je ne sais comment, ya t'il des serveur dispo?
    Sinon je peu vous donner les sources et le .pro pour tester en conditions réelles.

    Mac & Cheese
    World's greatest inventors: Franklin, Edison and this REESE guy.

  6. #6
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Salut,

    QPixmap::scaled() et QImage::scaled() n'agissent pas comme un modificateur du pixmap en cours. Ils renvoient une instance de QPixmap/QImage mis à la bonne échelle, tout en conservant l'état du pixmap source.

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Arf...
    ca m'apprendra à lire trop vite

  8. #8
    Membre régulier
    Avatar de mac&cheese
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 98
    Points : 96
    Points
    96
    Par défaut
    Ca marche à la perfection,
    merci beaucoup à vous deux pour votre aide.

    Mac & Cheese
    World's greatest inventors: Franklin, Edison and this REESE guy.

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

Discussions similaires

  1. Forcer la taille d'un select
    Par dessinateurttuyen dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 25/07/2006, 16h58
  2. Forcer la taille d'un champ en HTML
    Par Rei Angelus dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/03/2006, 16h28
  3. Forcer la taille d'une fenetre
    Par uloaccess dans le forum Access
    Réponses: 6
    Dernier message: 04/11/2005, 17h25
  4. forcer la taille d'un enum
    Par tut dans le forum MFC
    Réponses: 5
    Dernier message: 29/09/2005, 15h49
  5. [JDBC] Forcer la taille d'une string
    Par julio123 dans le forum JDBC
    Réponses: 4
    Dernier message: 10/06/2004, 09h43

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