我有一个图像流,以YUY2格式。我想在QQuickItem上画这些图像,这样我就可以在QtQuick2中使用它了。
我对性能有一个问题,所以我的问题是用C++重新绘制QML对象的最快方法是什么?有什么专门用于渲染视频的对象吗?
我尝试的是创建一个继承QQuickPaintedItem的类。我已经将YUY2图像转换成RGBA8888格式,然后使用QImage加载它,然后使用QPainter绘制它。事实证明,如果QQuickPaintedItem是大的--例如大于1000x1000,那么它是没有效率的。更快的方法是将QImage转换为QPixmap,然后使用QPainter进行绘制。它现在有点好用,但也许有更快的方法?例如,图像的转换过程似乎太慢了。
发布于 2017-04-21 15:02:00
我已经通过使用QQuickItem和定义的updatePaintNode函数( 库巴·奥伯氏病注释中的第一个想法)来实现这一点。
这个例子帮了我很多。在它中,NoisyNode类呈现背景(静态图像),Graph使用它。我已经把这两门课带到了我的项目中,并使它们适应了我的需要。我没有问题,显示1080x1920像素,30 had。正如我所理解的,为了显示视频,您最终需要将YUV转换为RGB,所以我马上就这样做了,并使用了RGBA像素数组。
https://stackoverflow.com/questions/40995664
复制相似问题