我可以将Qt对象绘制到QImage上,然后将图像绘制到HDC或CDC。这可能会损害我们应用程序的性能。如果我可以将Qt对象直接绘制到Win32 HDC或MFC CDC上,那将会很棒。我希望有一类,说QWin32Image清晰,那么我就可以这样使用它:我可以直接将Qt对象绘制到Win32 DC(设备上下文)吗?
QWin32Image image(hdc, 100, 100, Format_ARGB32_Premultiplied);
QPainter painter(&image);
painter.drawText(....);
是否有可能对我的思想?或者有更好的方法来做到这一点?
为此可以使用哪些windows功能? QPixmap可以将QImage转换为Windows位图句柄:QPixmap :: fromImage(image).toWinHBITMAP(QPixmap :: PremultipliedAlpha),考虑到性能,哪种方法更好? – 2010-06-01 03:19:00
这样做没有太多的经验。在我们的应用程序中,我们一直使用QImage.scanLine(0)来直接操作具有英特尔性能基元库的原始像素缓冲区,因为这更符合我们的应用。我的经验是,你需要做的转换越少越好。特别是在调试模式下,QImage和QPixmap有时会很慢。发布模式虽然没有这个问题。 – 2010-06-02 02:52:50
'bits()'相当于'scanLine(0)'http://doc.qt.io/qt-4.8/qimage.html#bits – Winand 2016-02-26 10:20:10