注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小人物的自述

为梦想而奋斗,没有梦想就没有希望!

 
 
 

日志

 
 

Cbitmap的一些琐碎知识  

2009-11-22 06:37:07|  分类: 学习笔记 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

CBITMAP cbitmap;//cbitmap对象可以通过调用attach或FromHandle 从一个HBIMAP中获得数据

HANDLE hBitmap=LoadImage(::AfxGetInstanceHandle),LeftImageName.GetBuffer0),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
MemDC.CreateCompatibleDC(GetDC()); 
CBitmap *bitmap,*pBitmap;

有两种方法进行取数据:
(1)bitmap=CBitmap::FromHandle((HBITMAP)hBitmap); //等同于bitmap.FromHandle((HBITMAP))hBitmap);
或者使用
(2)bitmap.atttach((HBITMAP)hBitmap);//方法二

pBitmap=MemDC.SelectObject(bitmap);


BITMAP结构中BMP数据的读取:
BITMAP结构具有如下形式:typedef struct tagBITMAP{  /* bm */     int      bmType;     int      bmWidth;     int      bmHeight;     int      bmWidthBytes;     BYTE     bmPlanes;     BYTE     bmBitsPixel;     LPVOID bmBits;}  BITMAP;
BITMAP结构定义了逻辑位图的高,宽,颜色格式和位值。
成员: bmType 指定了位图的类型。对于逻辑位图,这个成员必须为0。  bmWidth 指定了位图的宽度,以像素为单位。宽度必须大于0。  bmHeight 指定了位图的高度,以扫描行为单位。高度必须大于0。  bmWidthBytes 指定了每个扫描行中字节的数目。这个值必须是个偶数,因为图形设备接口(GDI)假定位图中的位值构成一个整数(2字节)数组。换句话说,bmWidthBytes*8必须是16的倍数,大于或等于bmWidth与bmBitsPixel相乘所得的值。  bmPlanes 指定了位图中颜色平面的数目。  bmBitsPixel 指定了每个位平面中用于定义一个像素所需的颜色位数。  bmBits 指向位图中位值的位置。bmBits成员必须是一个指向单字节数组的长指针。 

  评论这张
 
阅读(468)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017