如何获取位图数据指针

问题只这样的:CBitmapbitmap;bitmap.LoadBitmap(IDB_BITMAP1);//位图资源IDBITMAPbm;bitmap.GetBitmap... 问题只这样的:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);//位图资源ID
BITMAP bm;
bitmap.GetBitmap(&bm);

但查看bm的bmBits成员时,值为0,这是为什么?
我如何获得这个位图的数据区指针呢??
大侠,能否详细一些,我是初学者。。。最好解释一下为什么我那么做得到的bmBits为空。谢谢啦~~
这个问题困扰我N天了。
答案满意会加分儿。
展开
 我来答
魔高丈
推荐于2016-01-02 · TA获得超过9506个赞
知道大有可为答主
回答量:2066
采纳率:0%
帮助的人:3434万
展开全部
好像是DDB格式的bitmap用GetBitmap获得参数时bmBits就是NULL的.
而DIB格式可以获取到bmBits值。

你可以这样获得位图数据:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);//位图资源ID
BITMAP bm;
bitmap.GetBitmap(&bm);

BYTE data[48*48*4];//数组大小根据你的图片大小定义
bitmap.GetBitmapBits(48*48*4, (LPVOID)data);//获得数据,存入数组data中,数据格式,一个像素占4个字节,R G B NULL
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
freelaxy
2010-05-29 · TA获得超过253个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:332万
展开全部
GetDIBits
------------------------------------
Bits为NULL不是你的错. 因为BITS是允许修改的,
然而, LoadBitMap是从Resource里得到的,
而Resource是Module的一部分,是不许写的,
所以干脆给你的NULL, 省得你犯错误.

你可以用GetDIBits去弄个COPY来用.
或者, CopyImage(...)复制一个HBITMAP就可以GetBits了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式