// 支持的图片类型:bmp、jpeg、png、gif
int ShowImage(HWND hDlg, WORD wControlId, PBYTE pbImageData, INT iDataLen)
{
HWND hDlgItem = GetDlgItem(hDlg, wControlId);
if ( hDlgItem != NULL )
{
IStream* pIStream = NULL;
CreateStreamOnHGlobal(NULL, TRUE, &pIStream);
if ( pIStream != NULL && pbImageData != NULL && iDataLen > 0 )
{
pIStream->Write(pbImageData, iDataLen, NULL);
LARGE_INTEGER liTemp = {0};
pIStream->Seek(liTemp, STREAM_SEEK_SET, NULL);
Bitmap cBitmap(pIStream);
if ( Ok == cBitmap.GetLastStatus() )
{
Graphics g(hDlgItem);
if ( Ok == g.GetLastStatus() )
{
CRect cRect;
GetClientRect(hDlgItem, &cRect);
Rect r(cRect.left, cRect.top, cRect.Width(), cRect.Height());
if ( Ok == g.DrawImage(&cBitmap, r) )
{
return 0;
}
}
}
}
}
return -1;
}
int ShowRgbImage(HWND hDlg, WORD wControlId, PBYTE pbBgr, int iWidth, int iHeight)
{
HWND hDlgItem = GetDlgItem(hDlg, wControlId);
if ( hDlgItem != NULL )
{
HDC hDC = GetDC(hDlgItem);
if ( hDC != NULL )
{
Graphics g(hDC);
if ( Ok == g.GetLastStatus() )
{
CRect cRect;
GetClientRect(hDlgItem, &cRect);
Rect r(cRect.left, cRect.top, cRect.Width(), cRect.Height());
Bitmap cBmp(iWidth, iHeight, iWidth*3, PixelFormat24bppRGB, pbBgr);
if ( Ok == g.DrawImage(&cBmp, r) )
{
return 0;
}
}
ReleaseDC(hDlgItem, hDC);
}
}
return -1;
}
通过GDI+显示图片数据
最新推荐文章于 2014-12-26 13:58:47 发布