这个为啥速度那么慢

vv1133 2009-09-02 06:04:56
CDC *pdc=myp->GetDC();

for(ii=0;ii<380;ii++)
{
for(jj=0;jj<286;jj++)
{
tmp1=pdc->GetPixel(10+ii,184+jj);
rr1=GetRValue(tmp1);
tmp2=pdc->GetPixel(403+ii,184+jj);
rr2=GetRValue(tmp2);
if(rr1-rr2==0)
{
tmp[ii][jj]=RGB(0,0,0);
}
else
tmp[ii][jj]=tmp1;
}
}

ReleaseDC(pdc);

执行的时候很慢啊,几十秒钟都无响应,这正常吗?就只是得到窗口的像素值啊
...全文
55 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LuciferStar 2009-09-02
  • 打赏
  • 举报
回复
300*200=60000
你还要getpixel,还要数组操作.
建议一次将dc的数据全读入memdc或者数组中,然后再操作。
skybblue 2009-09-02
  • 打赏
  • 举报
回复
一个一个得当然慢了, 可以用GetDIBits从HBitmap中取象素值
副组长 2009-09-02
  • 打赏
  • 举报
回复
逐像素操作就是慢,尽量不要大面积使用逐像素的读取和设置。

19,468

社区成员

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

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