请教高手:如何以HBITMAP判断位图是否为黑色。在线等待,谢谢!

alexshucai 2004-06-25 10:54:58
如何以HBITMAP位图句柄来判断位图是否为黑色。或一个位图文件为全黑色?

谢谢!
...全文
351 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwlpower 2004-06-28
  • 打赏
  • 举报
回复
各位,要不要这么麻烦呀。
即然了有HBITMAP 的Handle.判断是否全黑,很快的方法。
CBitmap* bm;
bm=CBitmap.FromHandle(HBITMAP);
DWORD k;
byte* lpbits;
bm.GetBitmapBits(k,lpbits);
for(int i=0;i<k;i++)
{
if(lpbits[i]!=0xFF)
{
return TRUE;
}
}
return FALSE;


alexshucai 2004-06-28
  • 打赏
  • 举报
回复
谢谢天问的热心,程序稍作修改就可以用了。
也感谢其他朋友!
zwlpower 2004-06-28
  • 打赏
  • 举报
回复
CBitmap* bm;
bm=CBitmap.FromHandle(HBITMAP);
BITMAP bitmap;
bm->GetBitamp(&bitmap);
DWORD k=(bmitmap.bmHeight*bmitmap.bmWidth*bmitmap.bmPlanes*bmitmap.bmBitsPixel)/sizeof(byte)/8;
byte* lpbits=new byte[k];
bm.GetBitmapBits(k,lpbits);
for(int i=0;i<k;i+=bmBitsPixel/sizeof(byte)/8)
{
if(lpbits[i]!=0x000000)
{
return TRUE;
}
}
return FALSE;
alexshucai 2004-06-28
  • 打赏
  • 举报
回复
谢谢大家,不好意思来晚了。

GetPixel(x,y) 中的x,y在位图句柄里如何确定呢?我要知道位图里是否为纯色要得到每个点的值吧?

to zwlpower(天问) ;
谢谢你写的例子,但我调不通,还在调试。 好像是lpbits这个参数没取到值。

solon2003 2004-06-27
  • 打赏
  • 举报
回复
clrPixel 是你想要得到的颜色值,而x,y是象素的坐标值。
nineclock 2004-06-27
  • 打赏
  • 举报
回复
GetPixel
宝_爸 2004-06-27
  • 打赏
  • 举报
回复
CDC memDC ;
memDC.CreateCompatibleDC(NULL) ;//创建内存DC

CBitmap bitmap ;
bitmap.Attach(hbitmap) ;

memDC.SelectObject(&bitmap) ;
COLORREF clrPixel = memDC.GetPixel(x,y) ;//x,y就是你想要得到的颜色值
lianglp 2004-06-27
  • 打赏
  • 举报
回复
CDC memDC ;
memDC.CreateCompatibleDC(NULL) ;//创建内存DC

CBitmap bitmap ;
bitmap.Attach(hbitmap) ;

memDC.SelectObject(&bitmap) ;
COLORREF clrPixel = memDC.GetPixel(x,y) ;//x,y就是你想要得到的颜色值
lixiaosan 2004-06-26
  • 打赏
  • 举报
回复
用GetPixel得到位图象素颜色
wenyuzhang168 2004-06-25
  • 打赏
  • 举报
回复
GetPixel
酒红绿叶 2004-06-25
  • 打赏
  • 举报
回复
d可以根据句柄得到象素信息,判断是否为0就可以了,
DIB熟悉些!
好像有GetPixel这个函数吧!

19,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧