VC++关于如何用GDI+取得图片的Hbitmap
Imageimage(L"demo.jpg");载入图片之后,如何取得该图片的hbitmap呢?请教~~~...
Image image(L"demo.jpg");
载入图片之后,如何取得该图片的hbitmap呢?请教~~~ 展开
载入图片之后,如何取得该图片的hbitmap呢?请教~~~ 展开
2个回答
展开全部
没有简单直接的办法。
比较曲折的办法有两个,一个是通过DC绘制获取:
Image* pImage = Image::FromFile(L"c:\\test.gif");
Status status = pImage->GetLastStatus();
if(Ok == status)
{
CDC dc;
dc.CreateCompatibleDC(NULL);
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dc, pImage->GetWidth(), pImage->GetHeight());
CBitmap* pbmpOld = dc.SelectObject(&bitmap);
Graphics graphics(dc.m_hDC);
status = graphics.GetLastStatus();
if(Ok == status)
{
graphics.DrawImage(pImage, 0, 0);
// enjoy of bitmap;
}
dc.SelectObject(pbmpOld);
}
一个是用同样是GDI+的Bitmap重新读取文件或读取Image保存的文件:
Bitmap* pBitmap = Bitmap::FromFile(L"c:\\test.gif");
Status status = pBitmap->GetLastStatus();
if(Ok == status)
{
HBITMAP hBitmap = NULL;
status = pBitmap->GetHBITMAP(Color(0,0,0), &hBitmap);
if(Ok == status)
{
// enjoy of bitmap;
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Bitmap* pBitmap = Bitmap::FromFile(L"c:\\test.gif");
Status status = pBitmap->GetLastStatus();
if(Ok == status)
{
HBITMAP hBitmap = NULL;
status = pBitmap->GetHBITMAP(Color(0,0,0), &hBitmap);
if(Ok == status)
{
// enjoy of bitmap;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询