信号处理吧 关注:629贴子:1,609
  • 0回复贴,共1

请教,一个“获取指定坐标像素点RGB信息”的问题

只看楼主收藏回复

#include<Windows.h>
#include<iostream>
int main(void)
{
usingnamespace std;
HWND hWnd =::GetDesktopWindow(); // HWND, handle of window,窗口的句柄。
HDC hdc =::GetDC(hWnd);
for (int y = 1; y < 1081; y++)
{
for (int x = 1; x < 1921; x++)
{
COLORREF pixel =::GetPixel(hdc, x, y);
outFile<< pixel;
}
}
system("PAUSE");
return 0;
}
============================分隔线======================
代码如上
我的本意是练习获取指定坐标像素点的RGB信息
先整了个最简单的,直接用for循环全屏挨个获取信息
没想到,这也太慢了!
我年初配成7000+的电脑,运行了十多分钟都没有结束的样子
是我哪里没弄对吗?
我不服,又改代码
发现我自以为很小的一块区域,比如:
for (int y = 540 - 20; y < 540 + 21; ++y)
{
for (int x = 960 - 20; x> 960 + 21; ++x)
{
COLORREF pixel =::GetPixel(hdc, x, y);
outFile<< pixel;
}
}
长宽都只有41,够小了吧?
也要花很多秒等待后才能出结果,而不是我想象中瞬间就能完成
为什么呢?
是这种方式有问题吗?
请各位前辈高手指教,不胜感激!!


IP属地:四川1楼2020-08-10 22:51回复