010
15.09.2004, 10:08 Uhr
~Frank
Gast
|
Mit convertFromImage hatte ich noch nie Probs. Ich poste dir mal den Code um RGB24 in ein QImage umzuwandeln. Mußt du dann noch anpassen weil du immer 1 Byte mehr hast (A - Wert). Es wird hier Pixel für Pixel gesetzt, wenn du die Daten im Konstruktor übergibts, wird intern wohl auch nichts anders passieren.
C++: |
/* w = Bildbreite h = Bildhöhe ptr = uchar Zeiger auf Daten */ QImage img(w, h, 32, 0); // Qt kann keine 24 Bit
unsigned idx = 0; for (unsigned i = 0; i < h; ++i) { QRgb *line = (QRgb*)img.scanLine(i);
for (unsigned j = 0; j < w; ++j) { line[j] = qRgb(ptr[idx], ptr[idx + 1], ptr[idx + 2]); idx += 3; // für RGBA hier += 4 } }
|
Dieses QImage dann auf ein Widget zu malen (Größe vorher mit QImage::scale skalieren...)
C++: |
// die Nullen sind die Offsets von der oberen/linken Ecke des Widgets aus bitBlt(Zeiger auf das Widget z.B. QLabel, 0, 0, &img);
|
|