如何获取位图数据指针
问题只这样的: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天了。
答案满意会加分儿。 展开
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);//位图资源ID
BITMAP bm;
bitmap.GetBitmap(&bm);
但查看bm的bmBits成员时,值为0,这是为什么?
我如何获得这个位图的数据区指针呢??
大侠,能否详细一些,我是初学者。。。最好解释一下为什么我那么做得到的bmBits为空。谢谢啦~~
这个问题困扰我N天了。
答案满意会加分儿。 展开
2个回答
展开全部
好像是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
而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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GetDIBits
------------------------------------
Bits为NULL不是你的错. 因为BITS是允许修改的,
然而, LoadBitMap是从Resource里得到的,
而Resource是Module的一部分,是不许写的,
所以干脆给你的NULL, 省得你犯错误.
你可以用GetDIBits去弄个COPY来用.
或者, CopyImage(...)复制一个HBITMAP就可以GetBits了.
------------------------------------
Bits为NULL不是你的错. 因为BITS是允许修改的,
然而, LoadBitMap是从Resource里得到的,
而Resource是Module的一部分,是不许写的,
所以干脆给你的NULL, 省得你犯错误.
你可以用GetDIBits去弄个COPY来用.
或者, CopyImage(...)复制一个HBITMAP就可以GetBits了.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询