我正在将一个旧的 4.8 应用程序移植到 5.2.1 并回到那个时候,我使用 QImage 在屏幕上以 QLabel 呈现一些原始数据。
我正在从相机中抓取图像,所以我想实时显示这些图像。到目前为止,使用 QImage,我实现了超过 20FPS(相机能够抓取 30 FPS)。
我想知道在 OpenGL 上渲染这些数据(可能在 QML Quick / Qt Widgets 新应用程序中)是否会比当前开发的方法更快?
考虑到下一个假设:
您可以使用 OpenGL 获得更好的性能。QImage 仍然必须在内存和 GPU 上保存数据,这意味着在更新 QImage 时至少需要一个额外的副本。使用 OpenGL,您可以将数据直接复制到 GPU 内存,而无需将数据存储在内存中的某个位置。
但是,在一个 GPU 上可能是最佳的,不一定在另一个 GPU 上是最佳的。因此,如果您要实现需要在各种硬件上运行的东西,我建议您选择 QImage。
但如前所述,唯一的方法是实施和衡量。