VC++关于如何用GDI+取得图片的Hbitmap

Imageimage(L"demo.jpg");载入图片之后,如何取得该图片的hbitmap呢?请教~~~... Image image(L"demo.jpg");
载入图片之后,如何取得该图片的hbitmap呢?请教~~~
展开
 我来答
bhtzu
推荐于2016-04-19 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4159万
展开全部

没有简单直接的办法。

比较曲折的办法有两个,一个是通过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;
   }
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bd_zwj
推荐于2016-05-12 · TA获得超过161个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:241万
展开全部
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;
   }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式