Ich würde gernen ein erzeugtest Bild das im Speicher liegt dastellen.
Das ganze liegt als
uint8_t data[width*height];
vor.
Die Werte sind zwischen 0...255 und liegen ohne header vor.
12 32 43 0 0 0 2 23 4
12 33 33 4 4 44 4 44 2
.............
Nun würde ich das ganze natürlich anzeigen lassen.
Am besten nehme ich da ein QPixelmap denke ich.
Ich habe also ein
QLabel mit dem Namen pixMap
und einen Pointer auf mein Bild
frame->data
Nun will ich das dastellen.
Ich habe schon einiges versucht:
Soweit ich das verstehe, sollte es ganz einfach mit folgender Zeile gehen:
pixMap->loadFromData(frame->data, frame->width*frame->height, "PNG",QPixmap::Auto);
Geht natürlich nicht!
Dann bin ich zum Testen mal den umweg über ein neues QPixmap gegangen.
QPixmap* mypixmap;
mypixmap->loadFromData(frame->data, frame->width*frame->height, "PNG",QPixmap::Auto);
pixMap->setPixmap (*mypixmap);
Folge ist auch hier das ich ein leeres Bild angezeigt bekomme.
An einer anderen Stelle schreibe ich das Bild hin und wieder auch mal in eine Datei:
Code: Alles auswählen
pFile=fopen(szFilename, "wb");
// Write header
fprintf(pFile, "P5 %d %d 255 ", avf.width, avf.height);
// Write pixel data
for(y=0; y<avf.height; y++)
for (x=0;x<avf.width;x++)
fwrite(avf.data[0]+y*avf.width+x, sizeof(uint8_t), 1, pFile);
// Close file
fclose(pFile);
Hat jemand einen Tip was ich hier falsch mache?