Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » KDevelop / Qt / wxWidget » Videostream einer Webcam auf ein QLabel?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
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);

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
15.09.2004, 10:43 Uhr
dad_an_der_fh



danke, das funktionert doch recht gut.
Kann man da irgendwo noch an der Performance schrauben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
15.09.2004, 12:30 Uhr
~Frank
Gast


Tja, schön wäre es QPixmap::loadFromData(...) zu benutzen, und damit den Umweg über das QImage zu sparen, habe ich aber nie hinbekommen. Wenns bei dir klappt, sag bescheid :-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
31.05.2005, 11:20 Uhr
andi_m



ich hol den thread mal wieder hervor da ich ein ähnliches prob. habe.
und zwar ist mein array ein unsigned char buffer der ein jpg file hält.
wie kann ich dieses jetzt umwandeln und direkt mit bitBlt anzeigen lassen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
02.06.2005, 08:39 Uhr
typecast
aka loddab
(Operator)


Wie hast du die JPG-Datei geladen?

Zeig mal ein wenig Code.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ KDevelop / Qt / wxWidget ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: