草庐IT

C++/Win32 : How to get the alpha channel from an HBITMAP?

我有一个包含alphachannel数据的HBITMAP。我可以使用::AlphaBlendGDI函数成功渲染它。但是,当我调用::GetPixelGDI函数时,我从来没有取回带有alpha分量的值。文档确实说它返回像素的RGB值。有没有办法检索HBITMAP中像素的alphachannel值?我希望能够检测何时使用::AlphaBlend,以及何时使用老式方法将源HBITMAP中的特定颜色视为透明。HDCsourceHdc=::CreateCompatibleDC(hdcDraw);::SelectObject(sourceHdc,m_hbmp);//Thispixelhaspart

windows - 在 QT5 (Windows) 中从 QPixmap 获取 HBITMAP

现在QPixmap::toWinHBITMAP()已被弃用,我找不到从QPixmap(或QImage)获取HBITMAP的方法。谷歌搜索,我发现有一个名为qt_pixmapToWinHBITMAP()的函数,它似乎可以满足我的需要,但我找不到我应该启用的模块-如果有的话-在我的.pro文件中或我应该包含的头文件中使用它,或者其他东西。我需要HBITMAP的原因是要使用VFW创建视频。当然,我希望能够只使用Qt来做到这一点。有QtMultimedia模块,但据我所知它不会导出视频,所以我想我只能直接使用WindowsAPI。如有任何帮助,我们将不胜感激。 最佳