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); // 得到位图信息