C++ 在Qt中显示图像的最佳方法
我需要有两个要求显示图像,它必须是非常快的60-120 fps可能和低CPU性能开销显示和绘制原语和滚动。我找到了一些选择,但我不确定女巫会是最好的。 我将避免复制图像。只需输入日期即可直接写入图像 编写自定义QOpenGlWidget。优点:无图像拷贝,opengl后端。缺点:大量工作,没有实现滚动 使用QGraphicsView作为标准。优点:也可以使用opengl后端。缺点:请纠正我,如果我错过了,但图像是复制在标准的方式。 QGraphicsView,具有已实施的牵引杆接地功能。优点:无图像拷贝,opengl后端。缺点:我不知道。 你能告诉我我错过了什么解决方案,并帮助我选择最好的解决方案吗?我认为,使用和重新实现调用,可以做你想做的事情,而无需在和之间进行OpenGL操作。如果调用不会给出所需的结果,那么采用前一种路径native paitings也是另一种选择C++ 在Qt中显示图像的最佳方法,c++,performance,qt,C++,Performance,Qt,我需要有两个要求显示图像,它必须是非常快的60-120 fps可能和低CPU性能开销显示和绘制原语和滚动。我找到了一些选择,但我不确定女巫会是最好的。 我将避免复制图像。只需输入日期即可直接写入图像 编写自定义QOpenGlWidget。优点:无图像拷贝,opengl后端。缺点:大量工作,没有实现滚动 使用QGraphicsView作为标准。优点:也可以使用opengl后端。缺点:请纠正我,如果我错过了,但图像是复制在标准的方式。 QGraphicsView,具有已实施的牵引杆接地功能。优点:无
void FastImageItem::paint(QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget)
{
painter->drawImage(image.rect, image, image.rect);
}
显然,您应该实现返回图像大小。我认为对于60-120fps,您可能需要使用QOpenGLWidget并自己渲染图形。你说得对,这需要更多的工作,但同样地,你可以更好地控制绘制的内容和时间,这意味着你更有可能保持目标帧速率。@JeremyFriesner我认为这取决于系统使用的渲染方法。您有软件和硬件渲染。如果您使用纯CPU电源,而没有任何集成或专用GPU,那么您将无法获得性能提升。