QImage loadfromData
-
Hallo Zusammen,
ich versuche einen Screenshot von einen Osciloscope aufzunehem und in einen GUI darzustellen.
folgende habe ich versucht:QByteArray hilfsVariable = VisaAgilent::instance()->getScreenshot(); // Object von dem Oscilloscope if (_img_l.loadFromData(hilfsVariable,"BMP")) { ui.labImage->setPixmap(QPixmap::fromImage(_img_l)); } // es ist immer false
Was mich auch gewundert hat, dass es schon funktioniert hat aber dann plötzlich nicht mehr warum weiss ich nicht
Was mache ich denn falsch?Danke
-
@Galilio Hi,
wenn es früher einmal funktioniert hat, und auf einmal nicht mehr, ist meine erste Vermutung,
VisaAgilent::instance()->getScreenshot()
hat nicht richtig funktioniert.Überprüfe einmal die Größe des QByteArrays, wenn du zum Beispiel aus einem leeren QByteArray versuchst ein QImage zu machen, wirst du immer ein
FALSE
als Antwort bekommen. -
Hi,
QByteArray hilfsVariable = VisaAgilent::instance()->getScreenshot(); // Object von dem Oscilloscope
funktioniert immer.
Das Object ist immer da und das habe ich auch kontrolliert aber warum ist nicht dargestellt ist mir einen Rätsel.
z.B wie gerade einmal funktioniert und dann wieder nicht -
@Galilio
ok, die Frage ist noch ob die Funktion immer funktioniert, sondern ob das QByteArray was gefüllt wird 0 ist oder nicht.Einfach
#include <QDebug> ... QByteArray hilfsVariable = VisaAgilent::instance()->getScreenshot(); qDebug() << hilfsVariable.size();
sollte etwas Klarheit schaffen.
-
@Galilio said in QImage loadfromData:
Das habe ich auch so gemacht aber auf dem GUI in dem ich das Buffer den Size() lese und anzeigen
Jetzt z.B könnte keines Bild dargestellt obwohl der:qDebug() << hilfsVariable.size();
eine grosse von 403478 hat
-
Bei genauere Betrachtung habe ich festgestellt, dass die Daten bei der beiden Fälle anders aussehen.
Also problem ist bei dergetScreenshot()
Die liefert nicht immer saubere Werte und deswegen hat die
loadFromData
mühe bei der Zuordnung der Daten.