[英]QImage to QPixmap is expensive
对于我的应用程序,我想连续显示图像。 但是我发现将qimage转换为qpixmap花了大约30ms。 这影响了我的帧速率,所以我想找到一种更有效的方法来用QtGui显示图像。 我可以使用哪种方法? 有人可以帮我吗?
如果您正确阅读了文档,则说明了所有内容。
如果仅加载图像并显示它(不对图像进行任何操作),则只需加载图像并将其缓存为QPixmap。
但是,如果您进行操作,您将无能为力。 也许您可以尝试将图像直接绘制到小部件的QPainter。 我不知道它是否比将图像转换为pixmap并将其绘制为小部件更快。
您不必进行转换。 确保图像采用后备存储格式,只需在小部件上使用drawImage
即可。 尽可能快。
使用默认的栅格后端, QPixmap
是围绕QImage
的非常薄的包装器。 只要图像具有正确的格式,则转换是无操作的。
要获得与QPixmap
兼容的格式,可以使用以下代码:
QImage::Format pixmapFormat() {
static auto format = QPixmap{1,1}.toImage().format();
return format;
}
之前我也遇到过类似的问题,发现的最佳解决方案是使用OpenGL ( QOpenGLWidget
+ glDrawPixels()
)而不是将QImage
转换为QPixmap
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.