Alternative zu GetPixel



  • Hallo liebe Forengemeinde,

    ich habe folgenden Schnipsel:

    rgb getAverageColor(int xx, int yy, int length, int width)
    {
       COLORREF crExtract;
       HDC hdcEntireScreen = GetDC(NULL);
    
       int r, g, b;
       r=0;
       g=0;
       b=0;
    
       for(int i=0;i<length;i++)
       {
           for(int j=0;j<width;j++)
           {
               crExtract = GetPixel(hdcEntireScreen, xx+j, yy+i);
               r+=(int) GetRValue(crExtract);
               g+=(int) GetGValue(crExtract);
               b+=(int) GetBValue(crExtract);
           }
       }
    
       r/=length*width;
       g/=length*width;
       b/=length*width;
    
       ReleaseDC(NULL, hdcEntireScreen);
    
       rgb back = {r, g, b} ;
       return back;
    }
    

    Damit berechne ich die Durchschnittsfarbe in einem Quadrat. Leider dauert dieser Befehl bei einem 20x20 Quadrat bei mir ganze 4 Sekunden, was viel zu lange ist.
    Hat jmd eine Idee, wie ich das ganze beschleunigen kann, etwa durch Verbesserung des obigen Codes oder durch neue Befehle...

    Danke schonmal im voraus 👍





  • mhh gute Idee^^


Anmelden zum Antworten