私はYUY2形式の画像ストリームを持っています。私はこれらの画像をQQuickItem
にペイントしたいので、Qt Quick 2で使うことができます。QQuickItemをすぐに再ペイントする方法は?
私はパフォーマンスに問題があるので、私の質問はC++で書かれたQMLオブジェクトを再描画する最も簡単な方法です。ビデオのレンダリング専用のオブジェクトがありますか?私はQQuickPaintedItem
を継承したクラスを作成して試してみました何
。私はYUY2イメージをRGBA8888フォーマットに変換した後、QImage
を使ってロードし、QPainter
を使ってペイントしました。 QQuickPaintedItem
が大きい場合、たとえば1000x1000より大きい場合は効率的ではないことが判明しました。ずっと速い方法は、QImage
をQPixmap
に変換してからQPainter
を使ってペイントすることでした。今はややうまくいくが、速い方法があるかもしれない?例えば、画像の変換は処理が遅すぎるようです。
'QQuickPaintedItem'を使用すると、パフォーマンスは向上しません。カスタムジオメトリとシンプルなシェーダを使用して、希望のテクスチャで四角形を塗りつぶすアイテムを実装できます。アイテムに新しいテクスチャを送ります。表示とスケーリングは非常に速くなります。すでに例があるかもしれません。また、 'QQuickFramebufferObject'を使用してレンダーサブオブジェクトからテクスチャを更新することもできます。 –
@KubaOber助けてくれてありがとう。お望みなら、あなたのコメントを回答として投稿し、私はそれを受け入れます。 –