我正在寻找最快的方式:
这是我的解决方案:
// --------------------------------------------- ---------------------------------------
QImage image1 (width, height, QImage::Format_ARGB32);
QImage image2 (width, height, QImage::Format_ARGB32);
QImage image3 (width, height, QImage::Format_ARGB32);
/ * 一些带图像的操作 * /
QPainter displayPainter (this);
displayPainter.drawImage (topLeft, image1, area);
displayPainter.drawImage (topLeft, image2, area);
displayPainter.drawImage (topLeft, image3, area);
// --------------------------------------------- ---------------------------------------
如果有更好的,更快的?我发现信息,QPixmap更适合在屏幕上显示它,但是这个:
displayPainter.drawPixmap (.)
比这更慢:
displayPainter.drawImage (.)
。
------------------------------------------编辑---- --------------------------------------
我想补充一点,我看到了这个问题: What is the most efficient way to display decoded video frames in Qt?
但在我的情况下使用QGLWidget有点复杂。我正在使用必需品,这在QGLWidget中使用paintEvent并不稳定。用paintGL没问题。 的问候,
答案 0 :(得分:5)
我找到了解决方案,使我的代码更加优化。就我而言,我处理多个图像的alpha混合。 I found in documentation, 的是:
“某些操作(例如使用Alpha混合的图像合成) 使用预乘ARGB32比使用普通ARGB32更快。“
使用:
QImage image (width, height, QImage::Format_ARGB32_Premultiplied);
而不是:
QImage image (width, height, QImage::Format_ARGB32);
改进的alpha混合使它快2倍! 你还有其他想法如何让它变得更好吗?
答案 1 :(得分:0)
您可以考虑Qt示例中提供的“Image Composition Example”代码。这似乎是你在寻找什么?