• Jueves 2 de Mayo de 2024, 05:39

Autor Tema:  Encontrar Un Pixel De Un Color Especifico  (Leído 1424 veces)

enki

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Encontrar Un Pixel De Un Color Especifico
« en: Jueves 29 de Noviembre de 2007, 20:09 »
0
Hola a todos, quisiera saber si existe alguna forma de encontrar un pixel en la pantalla que no sea tomando una captura y despues recorrer todos los pixeles a ver cual coincide.

Lo que estuy intentando hacer es un programita para automatizar algunas cosas en un juego, pero necesito encontrar pixeles de colores especificos y saber la coordenada en donde estan, hice un porograma de prueba, pero por lo visto usa mucha de la capacidad de mi computadora, por eso quiero buscar alguna alternativa.

Saludos y gracias de antemano.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Encontrar Un Pixel De Un Color Especifico
« Respuesta #1 en: Viernes 30 de Noviembre de 2007, 14:28 »
0
Cita de: "enki"
Hola a todos, quisiera saber si existe alguna forma de encontrar un pixel en la pantalla que no sea tomando una captura y despues recorrer todos los pixeles a ver cual coincide.
... :ph34r:
no se puede.

Citar
Lo que estuy intentando hacer es un programita para automatizar algunas cosas en un juego, pero necesito encontrar pixeles de colores especificos y saber la coordenada en donde estan, hice un porograma de prueba, pero por lo visto usa mucha de la capacidad de mi computadora, por eso quiero buscar alguna alternativa

Debes de estar usando un pésimo algoritmo, y estos procesos demandan una eficiencia critica. Como lo estas haciendo?
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

enki

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Encontrar Un Pixel De Un Color Especifico
« Respuesta #2 en: Lunes 3 de Diciembre de 2007, 04:04 »
0
Hola, gracias por tu respuesta.

Parece que algo de lo del uso de recursos se debia a la manera en la que estaba tomando las capturas, encontre un código que me funciona mejor, con el anterior me usaba entre el 30 y el 50% del cpu en mi aplicacion de prueba, con este que encontre solo utiliza el 14.

Aqui lo pongo por si a alguien le interesa, no es mio, lo saque de la web de el guille.

Código: Text
  1. // Capturar toda la pantalla
  2.  
  3. Graphics gr = this.CreateGraphics();
  4. // Tamaño de lo que queremos copiar
  5. // En este caso el tamaño de la ventana principal
  6. Size fSize = Screen.PrimaryScreen.Bounds.Size;
  7. // Creamos el bitmap
  8. Bitmap bm = new Bitmap(fSize.Width, fSize.Height, gr);
  9. // Un objeto Graphics a partir del bitmap
  10. Graphics gr2 = Graphics.FromImage(bm);
  11. // Copiar todo el área de la pantalla
  12. gr2.CopyFromScreen(0, 0, 0, 0, fSize);
  13.  
  14. // Asignamos la imagen al PictureBox
  15. pictureBox1.Image = bm;
  16.  

Ahora, ¿que podria ser mejor?, yo tenia pensado hacer un for dentro de otro for para que me recorriera todos los pixeles de la pantalla hasta que encuentre el que necesito, no conozco otra manera de hacerlo.

Pondria mi codigo que tengo, pero aun no funciona, tengo algun error por ahi que no encuentro, pero estoy intentando solucionarlo.

Saludos y gracias   :hola:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Encontrar Un Pixel De Un Color Especifico
« Respuesta #3 en: Lunes 3 de Diciembre de 2007, 14:19 »
0
tu problema es que usa mucha cpu o que lo hace muy lento?... :comp:


y si hay que hacer un for pero no recorriendolo con getpixel y set pixel...

usa el método lockbits del objeto Bitmap.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io