Wie zeichne ich Pixel aus dem Anzeigepuffer?
Frage
Gibt es einen Qt-Beispielcode, der das Bild aus einem vorzeichenlosen Zeichenanzeigepuffer anzeigt?Jedes Byte im Puffer entspricht der Graustufenpixelfarbe.Der Inhalt des Anzeigepuffers ändert sich zur Laufzeit in festgelegten Intervallen.Ich muss den Inhalt des Anzeigepuffers so schnell wie möglich ändern, damit sich das Bild zu bewegen scheint.Meine Frage ist, wie man sehr schnell Pixel aus dem Puffer zieht?Ich muss das Bild nicht speichern, sondern möchte es nur anzeigen.Bitte helfen Sie
Lösung
QImage
bietet eine Konstrukteur zur Initialisierung mit einem unsigned char
Puffer.Um es anzuzeigen, können Sie a verwenden QGraphicsView
mit einem QGraphicsScene
.Jedes Mal, wenn sich die Daten des Puffers ändern, können Sie einen Slot ähnlich dem folgenden aufrufen:
void updateImage()
{
// I assume an 1024x768 image
QImage img(buffer, 1024, 768, QImage::Format_Indexed8);
scene->clear();
scene->addPixmap(QPixmap::fromImage(img));
graphicsView->update();
}
Sie können auch die verwenden QPixmap
'S loadFromData
um die Pixmap direkt aus dem unsigned char Array zu laden und das zu vermeiden QImage
Schritt.