mkk*_*mkk 4 qt rendering qimage
我正在寻找最快的方式:
在Qt.这是我的解决方案:
// ------------------------------------------------ ------------------------------------
QImage image1 (width, height, QImage::Format_ARGB32);
QImage image2 (width, height, QImage::Format_ARGB32);
QImage image3 (width, height, QImage::Format_ARGB32);
Run Code Online (Sandbox Code Playgroud)
/*一些带图像的操作*/
QPainter displayPainter (this);
displayPainter.drawImage (topLeft, image1, area);
displayPainter.drawImage (topLeft, image2, area);
displayPainter.drawImage (topLeft, image3, area);
Run Code Online (Sandbox Code Playgroud)
// ------------------------------------------------ ------------------------------------
如果有更好的,更快的?我发现信息,QPixmap更适合在屏幕上显示它,但是这个:
displayPainter.drawPixmap (.)
比这慢:
displayPainter.drawImage (.)
.
------------------------------------------编辑------- -----------------------------------
我想补充一点,我看到了这个问题: 在Qt中显示解码视频帧的最有效方法是什么?
但在我的情况下使用QGLWidget有点复杂.我正在使用必需品,这在QGLWidget中使用paintEvent并不稳定.用paintGL没问题.问候,
我找到了解决方案,使我的代码更加优化.就我而言,我处理多个图像的alpha混合.我在文档中发现:
"某些操作(例如使用alpha混合的图像合成)使用预乘ARGB32比使用普通ARGB32更快."
使用:
QImage image (width, height, QImage::Format_ARGB32_Premultiplied);
Run Code Online (Sandbox Code Playgroud)
代替:
QImage image (width, height, QImage::Format_ARGB32);
Run Code Online (Sandbox Code Playgroud)
改进的alpha混合使它快2倍!你还有其他想法如何让它变得更好吗?