Bonjour à tous.
Suite à quelques recherches dans le forum, je n'ai pas réussi à trouver une réponse à ma question.
Comme l'indique l'intitulé du topic, je souhaiterai charger et afficher une image à partir d'un fichier binaire.
Mon fichier existe sous plusieurs formats: .jpg et en .bin, dont un codée en 8 bits et l'autre en 16 bits.
J'arrive à charger l'image en jpg à l'aide de la classe QPixmap, je la charge ensuite dans un QLabel pour l'afficher grâce à la commande suivante:
Je voudrai appliquer des algorithmes de traitement de l'image par la suite, ce qui ne serait pas possible sur un fichier jpg; c'est pourquoi je souhaiterai utiliser des fichiers binaires.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ui->labelImage->setPixmap(QPixmap("C:/Bibliotheque/chien.jpg"));
Pour se faire j'ai essayé d'utiliser deux méthodes, une avec le constructeur de la classe QImage et l'autre avec celui de QPixmap sans succès pour l'instant.
Soit:
QImage(const uchar *data, int width, int height, int bytesPerLine, Format format, QImageCleanupFunction cleanupFunction = Q_NULLPTR, void *cleanupInfo = Q_NULLPTR)
et:
QPixmap(const QString &fileName, const char *format = Q_NULLPTR, Qt::ImageConversionFlags flags = Qt::AutoColor)
J'ai également tenté d'utiliser la fonction LoadFromData de QPixmap
QPixmap::loadFromData(const QByteArray &data, const char *format = Q_NULLPTR, Qt::ImageConversionFlags flags = Qt::AutoColor)
Vous pouvez accéder aux fichiers images sur mon Google Drive via ce lien: https://drive.google.com/folderview?...nc&usp=sharing
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 //Constructeur de QPixmap QImage img("C:/Bibliotheque/chien_8.bin", 750, 523, 8, QImage::Format_Grayscale8, Q_NULLPTR, Q_NULLPTR); //750 et 523 sont les dimensions en pixel de l'image QPixmap pix = QPixmap::fromImage(img); ui->labelImage->setPixmap(pix); // Constructeur de QPixmap QPixmap pixy("C:/Bibliotheque/chien.txt"); ui->labelImage->setPixmap(Pixy); //loadfromData QPixmap *Pixy; bool loaded; //déclarés dans le .h loaded =Pixy->loadFromData("C:/Bibliotheque/chien_8.bin"); ui->labelImage->setPixmap(Pixy);
En espérant que vous pourrez m'aider.
Cordialement,
Tnaidu
Stagiaire Ingénieur en Traitement d'Image.
Partager