我可以將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