Tengo un poco de idea de como hacer eso, por ejemplo, con un for para escanear todos los pixeles y determinar cuales son iguales y cuales no, pero el problema es que no se como seguir.
1º Mi codigo inicia con un GetwindowImage que es de alguien que encontre por internet, supongo que lo que hace es crear un nuevo bitmap con la imagen del webbrowser. No se si con WM_ se podria hacerlo de una ventana escondida (mejor dicho sacando solo foto del webbrowser).
2º El segundo codigo es para tomar la foto del WebBrowser.
3º Es el codigo para escanear los pixeles, y aquí es donde esta mi problema. Mi codigo escanea todos los pixeles, ahi vamos bien pero el problema es que el If realiza la acción por cada pixel que encuentra y eso no es lo que quiero. Me gustaria que primero escanee todo y luego realize el If solo 1 vez!
Más me gustaria poder hacer lo siguiente:
Que se realize el GetPixel y el For para ubicar todos los pixeles y que luego me devuelva las coordenadas donde se encuentra mi imagen "cuadro.bmp". No se si se entiende, seria primero el For seguido de el GetPixel para que escanee toda la pantalla y que luego encuentre mi imagen "cuadro.bmp" (con getpixel o otro metodo sencillo) y me de sus coordenadas de inicio.
Este es mi codigo. Espero que se haya entendido, y si me quieren ayudar y no entendieron mi explicación intentare hacerla mas simple.
Código
private static Bitmap GetWindowImage(IntPtr hWnd, Size size) // CODIGO PARA TOMAR SCREENSHOT (LO ENCONTRE POR INTERNET) { try { if (size.IsEmpty || size.Height < 0 || size.Width < 0) return null; Bitmap bmp = new Bitmap(size.Width, size.Height, System.Drawing.Imaging.PixelFormat.Format24bppRgb); Graphics g = Graphics.FromImage(bmp); IntPtr dc = g.GetHdc(); if (PrintWindow(hWnd, dc, 0) == 0) { MessageBox.Show("Fallo"); } g.ReleaseHdc(); g.Dispose(); CloseHandle(dc); return bmp; } catch { return null; } } private Bitmap getBrowserSS() // TOMO UN SCREENSHOT DEL WEBBROWSER { return GetWindowImage(webBrowser1.Handle, webBrowser1.Size); } private void button1_Click_1(object sender, EventArgs e) { int X, Y; for (X = 0; X < getBrowserSS().Width; X++) { for (Y = 0; Y < getBrowserSS().Height; Y++) { if (getBrowserSS().GetPixel(X, Y) == recursos.GetPixel(X, Y)) { // ME GUSTARIA QUE ME DEVUELVA DONDE SE ENCUENTRA MI IMAGEN CUADRO.PNG } else { MessageBox.Show("Algo esta mal"); } } } }
Desde ya muchas gracias =).