Bonjour à tous,

Je suis actuellement entrain de creer un programme pour effectuer du traitement d'image.
Mais dans un premier temps je souhaitais afficher une image a partir de ma fonction de la classe.
Mais voila j'ai l'erreur suivant qui s'affiche :

Cela faire plusieur jour que je cherche une solution mais aucun résultat. C'est pour cela que je me tourne vers vous.

De plus, j'ai observé que en mode debogage, que les QImage ImageOIriginal et ImageChargee sont null lorsque je rentre dans ma fonction loadImage().
Et j'ai mon Qlabel LabelImage qui vaut : <unavailable synchronous data>

Je suis sous qt 4.8.

Voici mon programme windowprocessing.cpp :

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "windowprocessing.h"
 
WindowProcessing::WindowProcessing(QWidget *parent) :
    QMainWindow(parent)
{
    /* Function that handles the menu bar */
    showMaximized();
 
    //createMenus();
    QMenu *menuFichier = menuBar()->addMenu("&Fichier");
    QAction *actionOpen = new QAction("&Open", this);
    QAction *actionQuit = new QAction("&Quit", this);
    menuFichier->addAction(actionOpen);
    menuFichier->addAction(actionQuit);
 
    connect(actionQuit, SIGNAL(triggered()), this, SLOT(close()));
    connect(actionOpen, SIGNAL(triggered()), this, SLOT(openFile()));
 
    QWidget *zoneCentrale = new QWidget;
    QFormLayout *formLayout1 = new QFormLayout;
 
    QLabel *labelImage = new QLabel;
 
    formLayout1->addWidget(labelImage);
 
    QGroupBox *groupbox1 = new QGroupBox("Image Originale");
    groupbox1->setLayout(formLayout1);
 
 
    /* Control layouts */
    QHBoxLayout *layoutPrincipal = new QHBoxLayout;
    layoutPrincipal->addWidget(groupbox1);
    //layoutPrincipal->addWidget(groupbox2);
    //layoutPrincipal->addWidget(groupbox3);
    zoneCentrale->setLayout(layoutPrincipal);
    setCentralWidget(zoneCentrale);
 
}
 
 
/* Open File */
void WindowProcessing::openFile()
{
    QString fileName = QFileDialog::getOpenFileName(this, "Ouvrir un fichier", QString(), "Images (*.png *.gif *.jpg *.jpeg)");
 
    if (!fileName.isEmpty())
    {
            QImage imageChargee(fileName);
            QSize size2(imageChargee.width(), imageChargee.height());
            QSize size(this->labelImage->width(), this->labelImage->height());
 
            if (imageChargee.isNull())
            {
                 QMessageBox::critical(this, "", "L'image n'existe pas.");
                 return;
            }
 
           this->loadImage();
    }
 
}
 
void WindowProcessing::loadImage()
{
 
    QSize size(this->labelImage->width(), this->labelImage->height());
    QSize size1(imageChargee.width(), imageChargee.height());
    QImage imageOriginale = imageChargee.scaled(size, Qt::KeepAspectRatio);
    labelImage->setPixmap(QPixmap::fromImage(imageOriginale));
}
et Voici mon programme windowprocessing.h :
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
34
35
#ifndef WINDOWPROCESSING_H
#define WINDOWPROCESSING_H
 
#include <QtGui>
 
class WindowProcessing : public QMainWindow
{
    Q_OBJECT
public:
    explicit WindowProcessing(QWidget *parent = 0);
    void loadImage();
 
 
signals:
 
public slots:
    void openFile();
 
private slots:
 
 
 
private:
 
 
    QLabel *labelImage;
 
    QImage imageOriginale;
    QImage imageChargee;
 
    QMenu *menuFichier;
 
};
 
#endif // WINDOWPROCESSING_H