请问如何读写 BITMAPINFO BITMAPINFOHEADER 里面图象数据,谢谢了!

howard 2006-02-15 10:30:47
我是通过设想头得到了 BITMAPINFO BITMAPINFOHEADER 类型的数据,因为要把背景色处理一下,拍摄下来的颜色比较杂,是不是可以用GetBitmapBits 和SetBitmapBits来做?因为我是初学。所以想求一下具体的代码。谢谢啦。
比如判断颜色接近RGB 255 255 255 就直接改成 255 255 255
...全文
202 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
howard 2006-02-22
  • 打赏
  • 举报
回复
dawning371(风刃) ( ) 信誉:100
我已经发了个邮件给您。麻烦你把程序发给我吧。谢谢!
kfjjfk2@163.com
dawning371 2006-02-21
  • 打赏
  • 举报
回复
给我邮箱,我给你个示例程序,
kfjjfk2@163.com
dawning371 2006-02-21
  • 打赏
  • 举报
回复
8位以上的bmp是不自带调色板的
howard 2006-02-21
  • 打赏
  • 举报
回复
xianshiqi(日出西山)

我技术比较低,能不能麻烦您给我一些更具体的提示啊。谢谢了
xianshiqi 2006-02-19
  • 打赏
  • 举报
回复
首先找到位图的数据区首地址,然后就可修改了,你处理的好像是灰度位图,过滤背景时就更方便了
m_pBitmapInfoHeader = (BITMAPINFOHEADER*) pbyDib;

//宽度和高度
m_nWidth = m_pBitmapInfoHeader->biWidth;
m_nHeight = m_pBitmapInfoHeader->biHeight;

//每像素的颜色位数
m_nBitCount = (BYTE)m_pBitmapInfoHeader->biBitCount;

//颜色数
m_nTotalColors = GetColorNumber();

//指向位图颜色索引表项的指针, 如果没有颜色表项, 则该值为NULL
m_pRGBQuad = (RGBQUAD*)(pbyDib + m_pBitmapInfoHeader->biSize);

//颜色索引表的大小(字节)
DWORD dwColorTableSize = m_nTotalColors * sizeof(RGBQUAD);

//指向位图数据的指针
m_pDibData = pbyDib + m_pBitmapInfoHeader->biSize+dwColorTableSize;


e_feeling 2006-02-18
  • 打赏
  • 举报
回复
看一下MSDN帮助文件,有参数说明。
howard 2006-02-15
  • 打赏
  • 举报
回复
goodboyws(深夜不眠者) ( ) 信誉:175

是么,可以用条色板?请问怎么做啊。我是用摄象头拍个人,人背后是白色墙,或者兰色墙,想把人单独的挖出来,然后用TransparentBlt显示。本来直接用光照着背墙,可以驱除一些杂色,不过效果不是很好。所以想在程序里处理一下,麻烦你能告诉我怎么做么?
goodboyws 2006-02-15
  • 打赏
  • 举报
回复
你到底要做什么呢?似乎你的问题用调色板就可以解决
joinclear 2006-02-15
  • 打赏
  • 举报
回复
http://my.opera.com/neutronstar/blog/show.dml/117994
http://www.vckbase.com/document/viewdoc/?id=181

19,468

社区成员

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

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