title: Can't find error in pixel searching algorithm
body: <p>Ok, I'm trying to make a program that finds the position of a colored pixel within the desktop. To do this I make a screenshot of the desktop then go through the pixels and search for the one that has the matching RGB as i need. The only problem is that my program returs strange coordonates X,Y for the found pixel...</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;windows.h&gt;
  #include &lt;atlimage.h&gt;
  #include &lt;iostream&gt;
  using namespace std;
  struct rgbcolor{
      int red;
      int green;
      int blue;} myColor;
  struct point{
          int x;
          int y;
      };
  point SearchPixel(int r,int g, int b){
      CImage bitmapzor;
      bitmapzor.Load(("C:\\1.bmp"));
      COLORREF PixColor=0; //This is a color data
      int R=0,G=0,B=0; //These are the channel values
      BYTE* byteptr = (BYTE*)bitmapzor.GetBits();
      int ok=0;
      int pitch = bitmapzor.GetPitch(); //This is a pointer offset to get new line of the bitmap
      //Go through every pixel and compare the RGB code
      for (int i=0; i&lt;bitmapzor.GetWidth();i++)
          for (int j=0; j&lt;bitmapzor.GetHeight();j++)
          {
              B= *(byteptr+pitch*j+3*i);
              G= *(byteptr+pitch*j+3*i+1);
              R= *(byteptr+pitch*j+3*i+2);       
              if(R==r&amp;&amp;G==g&amp;&amp;B==b)
              { point p;
                p.x=i;
                p.y=j;
                cout&lt;&lt;"First pixel found at:\n X:"&lt;&lt;p.x&lt;&lt;"\n Y:"&lt;&lt;p.y&lt;&lt;"\n-----------------\n";
                return p; 
              }
          }
      bitmapzor.Destroy(); //destroy the bitmap
      point p;
      p.x=-1;
      p.y=-1;
      cout&lt;&lt;"Pixel not found!\n";
      return p;
  
  }
  
  bool ScreenCapture(int x, int y, int width, int height, char *filename){
     // get a DC compat. w/ the screen
     HDC hDc = CreateCompatibleDC(0);    
  
     // make a bmp in memory to store the capture in
     HBITMAP hBmp = CreateCompatibleBitmap(GetDC(0), width, height);   
  
     // join em up
     SelectObject(hDc, hBmp);   
  
     // copy from the screen to my bitmap
      BitBlt(hDc, 0, 0, width, height, GetDC(0), x, y, SRCCOPY); 
         CImage image;
          image.Attach(hBmp);
          image.Save(("C:\\1.bmp"), Gdiplus::ImageFormatBMP);
        SearchPixel(myColor.red,myColor.green,myColor.blue);
  
     // free the bitmap memory
     DeleteObject(hBmp);  
  
     return 1;
     }
  
  int main()
  {   //RGB for the searched color
      myColor.red=200;
      myColor.green=191;
      myColor.blue=231;
  
      int count=0;
      while(true){
          ScreenCapture(0, 0, 1366, 768, "c:\\1.bmp");
              count++;
          cout&lt;&lt;"Number of searches:"&lt;&lt;count&lt;&lt;"\n\n";
          Sleep(500);
      }
     system("pause");
     return 0;    
  }
  </code></pre>