已知HBITMAP求任意坐标的RGB

wangguang246 2010-11-05 11:18:46
要求不能用GetPixl来获取~
详细的源代码。

先谢过了
...全文
191 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小驴 2010-11-08
  • 打赏
  • 举报
回复
呵呵,刷分有意思吗,人家可是真心的想帮你的....楼主注意呀,小心下次直接被封ID了...
lsupper 2010-11-08
  • 打赏
  • 举报
回复
LZ 不厚道........
副组长 2010-11-05
  • 打赏
  • 举报
回复
上面错了,不好意思,应该这样
r = buffer[(height-i-1)*WIDTHBYTES+j*3 + 2];
g = buffer[(height-i-1)*WIDTHBYTES+j*3 + 1];
b = buffer[(height-i-1)*WIDTHBYTES+j*3 + 0];

buffer是存放像素数据的缓存,i、j是从0开始的。
副组长 2010-11-05
  • 打赏
  • 举报
回复
要RGB一般是24位彩色吧,不用GetPixl一般都是要求速度。
用GetDIBit获取图像像素,像素是自下而上排列的。每一行像素由WIDTHBYTES那么多个。

比方你取第i行第j列的r、g、b,就是
r = buffer[((height-i-1)*WIDTHBYTES+j)*3 + 2];
g = buffer[((height-i-1)*WIDTHBYTES+j)*3 + 1];
b = buffer[((height-i-1)*WIDTHBYTES+j)*3 + 0];
height是图像的高度。
不是24位的也可以一样算,注意每个像素占得字节数。
汪宁宇 2010-11-05
  • 打赏
  • 举报
回复
LS正解,学习了!
hastings 2010-11-05
  • 打赏
  • 举报
回复
http://download.csdn.net/source/2800509
注意里面的:
DibBitmap(HDC hdc, HBITMAP hBitmap, int BitCount);构造函数

COLORREF At(size_t x,size_t y,bool b565=false)const;成员函数

19,468

社区成员

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

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