用什么函数能显示内存中的.bmp .jpg图像?
OleLoadPicture不支持jpg格式,我现在是先把内存中的图像写入文件,再用OleLoadPicturePath显示,有没有其它更好的方法?
[解决办法]
CXImage库,在codeproject网站上可以下载源码。
[解决办法]
gdi+ 可以从流(IStream) 打开文件, 把内存转换成流, 比较简单的
HBITMAPNGdi::LoadBitmap(BYTE *pImgDat, int nSize)
{
Gdiplus::Bitmap*pBm;
Gdiplus::ColorcrBk;
Gdiplus::StatusnRetVal;
IStream*pStream;
HGLOBALhMem;
VOID*pDat;
HBITMAPhBitmap;
crBk = Gdiplus::Color::White;
GdiPlusInit();
hMem = GlobalAlloc(GMEM_FIXED, nSize);
CreateStreamOnHGlobal(hMem, FALSE, &pStream);
pDat = GlobalLock(hMem);
memcpy(pDat, pImgDat, nSize);
pBm = pBm->FromStream(pStream);
nRetVal = pBm->GetHBITMAP(crBk, &hBitmap);
delete pBm;
GlobalUnlock(pDat);
GlobalFree(hMem);
pStream->Release();
return hBitmap;
}