对于我的应用程序,我想继续显示图像。但我发现将qimage转换为qpixmap需要大约30ms。这影响了我的帧率,所以我想找到更有效的方式用QtGui显示我的图像。我可以使用哪种方法? 有人能帮助我吗?
答案 0 :(得分:2)
如果您仔细阅读文档,则会解释所有内容。
如果您只加载图片并显示它(不对图像进行任何操作),只需加载图像并将其缓存为QPixmap。
但如果你进行操纵,那么你无能为力。也许您可以尝试将图像直接绘制到窗口小部件的QPainter。我不知道它是否比将图像转换为像素图并将其绘制为小部件更快。
答案 1 :(得分:1)
您不必进行转换。确保图片的格式为backing store,并且只是小部件上的drawImage
。它的速度可以快。
使用默认的栅格后端,QPixmap
是QImage
周围非常薄的包装器。只要图像格式正确,转换就是无操作。
要获得与QPixmap
兼容的格式,您可以使用以下代码:
QImage::Format pixmapFormat() {
static auto format = QPixmap{1,1}.toImage().format();
return format;
}
答案 2 :(得分:0)
之前我遇到过类似的问题,我找到的最佳解决方案是使用 OpenGL (QOpenGLWidget
+ glDrawPixels()
)而不是转换QImage
到QPixmap
。