QPixmap loadFromData

Alles rund um die Programmierung mit Qt
Antworten
Treehouse
Beiträge: 100
Registriert: 18. Juni 2007 10:21

QPixmap loadFromData

Beitrag von Treehouse »

Hallo,

ich möchte gerne die Funktion loadFromData von einem QPixmap objekt benutzen.

Wenn ich jedoch das Ergebnis der Funktion abfrage erhalte ich einen FALSE was bedeutet, dass das lesen fehlgeschlagen ist.

Ich rufe die Funktion wie folgt auf:

Code: Alles auswählen

	This->m_pixmap = QPixmap();
	if (This->m_pixmap.loadFromData(bits, bit.size, 0, Qt::MonoOnly))
		This->update();
bits ist ein Pointer auf den Anfang eines Pixel arrays und bit.size ist die Größe des Arrays. Da es sich um ein Graustufen bild handelt habe ich Qt::MonoOnly gewählt.

Kann mir vielleicht jemand sagen was daran falsch ist?

Gruß

Treehouse
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wo kommen die Daten her. Hinterleg die Daten mal in einer Datei, und schau was z.B. gimp oder file dazu sagt.

Was ist 'This' für ein besc.... Bezeichner?
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

Beitrag von qtNiko »

hi,
so ein Problem hatte ich auch mal.

Den dritten Parameter, format, den du auf 0 gesetzt hast, weiß ich nicht, wie er richtig zu setzen ist. Irgendwie muss das Programm ja wissen, welches Bildformat es werden soll.
Bei mir klappte es schließlich mit dem Aufruf

Code: Alles auswählen

dataOK = bild.loadFromData( g8bild, j+BREITE*HOEHE);
bild ist ein QPixmap, g8bild ein Pointer auf ein unsigned char Array mit den Pixeldaten und j die Länge des Bildheaders.
Letzterer war der Knackpunkt. Ich habe zuerst einen Header, in meinem Fall ein pgm-Header, in das g8bild Array geschrieben und dann hinterher die Pixeldaten.

Vielleicht geht es ja auch ohne den Header, indem man für den dritten Parameter, format, etwas passendes angibt. Ich weiß jedoch nicht, was da hin soll. Wenn du inzwischen weiter bist, würde mich deine Lösung interessieren - für später vielleicht mal :wink:
Jetzt kommt mir eine Idee: sollte format nicht vielleicht auf einen Bereich zeigen, wo der Bildheader steht? Das wäre logisch. Ich probier's mal.
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Antworten