我有一个大的显示屏(约1000x2000像素)和我做下面的绘制图片到屏幕上:QPainter性能如何提高?
QImage *pImage = GetImage(); // from wherever
QPainter painter(this);
painter.drawImage((0,0), *pImage); // this line takes over 100ms to complete.
屏幕越大的是,我画到,时间越长这种涂料需要。我想pImage是memcpy'd,这是不同的。我怎样才能减少这种开销?我并没有试图在这里扩展或任何东西。
谢谢。
如下所示:\t 我也应该注意到,我使用的是一个QImage,因为我操纵QIMAGE :: RGB16格式的原始图像缓冲区。基于此,我不知道我可以使用QPixmap来代替。你知道一种将QPixmap设置为该格式的原始图像缓冲区的方法吗? – glutz
您不能将原始像素“填充”到QPixmap中。 QImage是正确的选择。如果相同的图像不会被多次绘制,无论如何都无法将其转换为QPixmap。这是什么平台?我知道Mac上的“加速”默认画家后端真的很慢。尝试从QImage创建一个画家,并看到相同的操作是更快。 –
@Stephen Chu。我正在创建一个来自QImage的画家。或者你的意思是别的吗?我在Ubuntu 10.10上。 – glutz