Ich habe einen Strom von Bildern im YUY2-Format. Ich möchte diese Bilder auf QQuickItem
malen - so kann ich es mit Qt Quick 2 verwenden.Wie schnell QQuickItem neu streichen?
Ich habe ein Problem mit der Leistung, so ist meine Frage, was ist der schnellste Weg, QML-Objekt in C++ geschrieben neu zu zeichnen? Gibt es ein nettes Objekt zum Rendern von Videos?
Was ich versucht habe, ist eine Klasse erstellen, die QQuickPaintedItem
erbt. Ich habe YUY2-Bilder in das RGBA8888-Format konvertiert, dann mit QImage
geladen und dann mit QPainter
bemalt. Es erwies sich als nicht effizient, wenn QQuickPaintedItem
groß war - zum Beispiel größer als 1000x1000. Viel schneller war die Methode, QImage
in QPixmap
umzuwandeln und dann unter Verwendung von QPainter
zu streichen. Es funktioniert jetzt etwas gut, aber vielleicht gibt es einen schnelleren Weg? Zum Beispiel scheint die Konvertierung von Bildern zu langsam den Prozess zu verlangsamen.
Sie werden keine bessere Leistung erhalten, wenn Sie 'QQuickPaintedItem' verwenden. Sie können ein Element mit benutzerdefinierter Geometrie und einem einfachen Shader implementieren, um ein Quad mit der gewünschten Textur zu füllen. Füttere dann den Gegenstand mit neuen Texturen. Die Anzeige und Skalierung wird sehr schnell sein. Vielleicht gibt es dafür schon Beispiele. Sie können auch 'QQuickFramebufferObject' verwenden und die Textur aus dem Render-Unterobjekt aktualisieren. –
@KubaOber Danke für die Hilfe. Wenn du möchtest, poste deinen Kommentar als Antwort und ich werde ihn akzeptieren. –