Morgen,
ich lese aus einem Screenshot vom aktuellen Bildschirm die Pixel infos aus und suche dann nach einem zuvor eingelesenen bild dessen Infos in dem String such gespeichert sind.
Funktioniert soweit auch ganz gut nur hab ich ein Problem und das is die Geschwindigkeit. wenn ich alle Pixel auswerten möchte dauert das fast !_5 min_! Hat jemand eine Idee wie man diesen Vorgang beschleunigen kann?
Hier mein code:
Schonmal vielen dank im Vorraus
Gruß
ich lese aus einem Screenshot vom aktuellen Bildschirm die Pixel infos aus und suche dann nach einem zuvor eingelesenen bild dessen Infos in dem String such gespeichert sind.
Funktioniert soweit auch ganz gut nur hab ich ein Problem und das is die Geschwindigkeit. wenn ich alle Pixel auswerten möchte dauert das fast !_5 min_! Hat jemand eine Idee wie man diesen Vorgang beschleunigen kann?
Hier mein code:
Code:
char vergleich[15000];for(int i=0;i<14999;i++){vergleich[i]=NULL;}
int subtra=0;
HDC dc=GetDC(0); //Bildschirm lesen
for(int j=0;j<1000;j++)
{
for(int i=0;i<1000;i++)
{
COLORREF c = GetPixel(dc, i, j);
sprintf(vergleich,"%s %i",vergleich,GetRValue(c));
sprintf(vergleich,"%s %i",vergleich,GetGValue(c));
sprintf(vergleich,"%s %i",vergleich,GetBValue(c));
if(GetRValue(c)<100&&GetRValue(c)>10){subtra++;}
if(GetGValue(c)<100&&GetGValue(c)>10){subtra++;}
if(GetBValue(c)<100&&GetBValue(c)>10){subtra++;}
if(GetRValue(c)<10){subtra+=2;}
if(GetGValue(c)<10){subtra+=2;}
if(GetBValue(c)<10){subtra+=2;}
verg=vergleich;
if(verg.find(such)<20000){char gefunden[100]; sprintf(gefunden,"gefunden x: %i y: %i",(verg.find(such)+subtra)/12,j);MessageBox(NULL,gefunden,"",NULL);i=1000;j=1000;}
}
subtra=0;
out<<"zeile "<<j<<" "<<vergleich<<endl;
for(int i=0;i<14999;i++){vergleich[i]=NULL;}
verg="";
}
Schonmal vielen dank im Vorraus
Gruß