读书人

Bit地图如何得到位图资源呢

发布时间: 2013-02-24 17:58:56 作者: rapoo

Bitmap怎么得到位图资源呢?
现在想用Bitmap对象得到位图资源,怎么得到呢?
[解决办法]
Image * CLoadPng::LoadImage( UINT nID, LPCTSTR lpszType, HINSTANCE hInstance /*=NULL*/ )
{
{
Image * pImage = NULL;

if( lpszType == RT_BITMAP )
{
HBITMAP hBitmap = ::LoadBitmap( hInstance, MAKEINTRESOURCE(nID) );
pImage = (Image*)Bitmap::FromHBITMAP(hBitmap, 0);
::DeleteObject(hBitmap);
return pImage;
}

hInstance = (hInstance == NULL) ? ::AfxGetResourceHandle() : hInstance;
HRSRC hRsrc = ::FindResource ( hInstance, MAKEINTRESOURCE(nID), lpszType);
ASSERT(hRsrc != NULL);

DWORD dwSize = ::SizeofResource( hInstance, hRsrc);
LPBYTE lpRsrc = (LPBYTE)::LoadResource( hInstance, hRsrc);
ASSERT(lpRsrc != NULL);

HGLOBAL hMem = ::GlobalAlloc(GMEM_FIXED, dwSize);
LPBYTE pMem = (LPBYTE)::GlobalLock(hMem);
memcpy( pMem, lpRsrc, dwSize);
IStream * pStream = NULL;
::CreateStreamOnHGlobal( hMem, FALSE, &pStream);

pImage = Image::FromStream(pStream);

::GlobalUnlock(hMem);
pStream->Release();
::FreeResource(lpRsrc);

return pImage;
}

}
[解决办法]
HBITMAP hBitmap;
BITMAP s_bm;
hBitmap=(HBITMAP)LoadImage(NULL,L"005.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE
[解决办法]

LR_CREATEDIBSECTION);
GetObject(hBitmap, sizeof(s_bm), &s_bm); // 得到位图信息

读书人网 >VC/MFC

热点推荐