如何求取每个点的颜色

lmlly_117228 2008-10-28 10:32:43
不能显示出来
因为我要做成DLL文件
请问怎么做
int bSize=sizeof(BITMAPINFOHEADER);
HBITMAP bitmap=(HBITMAP)LoadImage //调入cc指定的图形
(NULL,//
strFile,IMAGE_BITMAP, //文件名,位图方式
0,0, //图形宽,高
LR_LOADFROMFILE|LR_CREATEDIBSECTION//方式
);
// HDC hDC;
// hDC=CreateDC("DISPLAY", NULL, NULL, NULL);

CClientDC dc(NULL);
dc.SelectObject(&bitmap);
COLORREF clr;
int pix_color;
int red,green,blue;
// int Color[256];

for(int fd=0;fd<256;fd++)
{
Color[fd]=0;
}
int h=GetWidth();

int w=GetHeight();

for(int i=1;i<w;i++)
{
for(int j=1;j<h;j++)
{


clr=dc.GetPixel(i,j);
red=GetRValue(clr);
green=GetGValue(clr);
blue=GetBValue(clr);

pix_color=red*0.299+green*0.587+blue*0.114;

Color[pix_color]++;
}
}
为什么每次值都不同
...全文
73 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
一条晚起的虫 2008-10-28
  • 打赏
  • 举报
回复
说错了,是灰度程序。
一条晚起的虫 2008-10-28
  • 打赏
  • 举报
回复
代码其他地方都没有发现什么问题。二值话程序吧?
Color[pix_color]++; //这句什么意思?
kittyhuaner 2008-10-28
  • 打赏
  • 举报
回复
CClientDC dc(NULL);
这个应该是不对的吧,

HDC hdc=CreateCompatibleDC(NULL);
HBITMAP holdBmp=(HBITMAP)SelectObject(hdc,bitmap);
...


DeleteObject(bitmap);
SelectObject(hdc,holdBmp);
DeleteDC(hdc);
lyllm_117228 2008-10-28
  • 打赏
  • 举报
回复
CClientDC dc(NULL);
dc.SelectObject(&bitmap);
这个可以吗

19,464

社区成员

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

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