Witam
Planuję zrobić coś w stylu "Ambilight" Philipsa do komputera. Całość sterowana portami RS232. Problem tkwi w prędkości działania algorytmu obliczającego przeważające kolory:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HDC Ekran = GetDC(GetDesktopWindow());
COLORREF Kolor = RGB(255, 255, 255);
int i,i2,i3;
short int r,g,b;
for (i=1; i!=2; i) {
for (i2=1; i2<5; i2++) {
for (i3=1;i3<3;i3++) {
Kolor = GetPixel(Ekran, i2*200, i3*50);
r+= GetRValue(Kolor);
g+= GetGValue(Kolor);
b+= GetBValue(Kolor);
}
}
r=r/10;g=g/10;b=b/10;
Sleep(100);
}
ReleaseDC(NULL, Ekran);
return 0;
}
To jest przykładowy algorytm obliczania średniego koloru z 10 punktów na górnej części ekranu. Program zżera 10% zasobów procesora 2x2.8GHz. Da się to jakoś zoptymalizować? A może jest jakieś całkowicie inne rozwiązanie?