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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ui->labelImage->setPixmap(QPixmap("C:/Bibliotheque/chien.jpg"));
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.
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)


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);
Vous pouvez accéder aux fichiers images sur mon Google Drive via ce lien: https://drive.google.com/folderview?...nc&usp=sharing

En espérant que vous pourrez m'aider.
Cordialement,
Tnaidu
Stagiaire Ingénieur en Traitement d'Image.