VC中利用GDI+进行图形编程,已知图片数据保存在BYTE数组中,需要通过这个BYTE创建一个Bitmap再进行相关处理,这个过程中间需要通过IStream来实现,代码如下:
void ByteToBitmap( BYTE* pImageData, int nSize )
{
HRESULT hr;
Status sr;
HGLOBAL hGlobal = GlobalAlloc( GMEM_MOVEABLE, nSize );
LPVOID pvData = NULL;
pvData = GlobalLock( hGlobal );
memcpy( pvData, pImageData, nSize );
GlobalUnlock( hGlobal );
IStream *pStream = NULL;
hr = CreateStreamOnHGlobal( hGlobal, TRUE, &pStream );
Bitmap bmp( pStream );
sr = bmp.GetLastStatus(); // sr = Ok,表示Bitmap创建成功。
……
……
GlobalFree( hGlobal ); // 使用Bitmap完后,需要释放资源,以免造成内存泄漏。
}
本文介绍如何在VC++中使用GDI+从BYTE数组创建Bitmap对象的过程。该过程涉及使用IStream辅助创建Bitmap,并确保正确释放内存避免泄漏。

被折叠的 条评论
为什么被折叠?



