c++qtqimageqtguihbitmap

QImage from HBITMAP


In my windows-only program, I use a third-party library, which returns a HBITMAP.

Is there a way to initialize a QImage from its contents, i.e. to convert it to a QImage?


Solution

  • This is the way to do it for Qt 4 (QtGui):

    QImage image(QPixmap::fromWinHBITMAP(hBitmap).toImage());
    

    This is the way to do it for Qt 5 (QtWinExtras):

    QPixmap pixmap = QtWin::fromHBITMAP(hBitmap);
    QImage image = pixmap.toImage();
    
    // or
    
    QtWin::imageFromHBITMAP(hdc, hBitmap, width, height)