elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Píxeles y Bucle For
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Píxeles y Bucle For  (Leído 6,532 veces)
calk9

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Píxeles y Bucle For
« en: 18 Septiembre 2011, 20:40 pm »

Buenas a todos, estoy realizando una aplicacion la cual en un bucle for recorre, moviende el mouse, una determinada área y al encontrar un píxel con determinado color, se frene. EL PROBLEMA es que, al recorrer el área moviendo el cursor con el bucle previamente mencionado anda todo perfecto, con una rapidez considerable, en cambio cuando "coloco" el código para verificar si encuentra el píxel lo hace un 90% más lento. Este es mi código:

Código
  1. Dim iX As Integer
  2. Dim iY As Integer
  3. Dim hdc As Long, pxColor As Double
  4.  
  5.    Call GetCursorPos(Mouse)
  6.    For iX = Mouse.x To Mouse.x + 100
  7.        For iY = Mouse.y To Mouse.y + 75
  8.            Call SetCursorPos(iX, iY)
  9.            'Hasta acá todo bien, lo que viene ahora es lo que lenta muchísimo mi aplicación...
  10.  
  11.            hdc = GetDC(0)
  12.            pxColor = GetPixel(hdc, Mouse.x, Mouse.y)
  13.            ReleaseDC 0, hdc
  14.            Me.Caption = Hex(pxColor)
  15.            If Me.Caption = "AA431B" Then
  16.                Exit For
  17.            End If
  18.            '//
  19.        Next iY
  20.    Next iX

No se cual es el problema, por qué lo hace muchísimo mas lento. Ya que sin verificar el color lo hace en unas milésimas de segundo, y luego con el código para verificar tarda unos 20 o 30 en recorrer el mouse todo el área. Pues ni me imagino cuando haga áreas mas grandes.

Saludos.


« Última modificación: 18 Septiembre 2011, 20:53 pm por raul338 » En línea

Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
Re: Píxeles y Bucle For
« Respuesta #1 en: 18 Septiembre 2011, 20:48 pm »

Te recomendaria que averigues sobre el formato Bitmap ... es mucho mas rapido, salu2 !


En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Píxeles y Bucle For
« Respuesta #2 en: 18 Septiembre 2011, 20:54 pm »

Exacto, toma un screenshot de la pantalla y de ahi analizalo :P
En línea

calk9

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Píxeles y Bucle For
« Respuesta #3 en: 18 Septiembre 2011, 20:56 pm »

Pues es en tiempo real... como podría hacer?
En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Píxeles y Bucle For
« Respuesta #4 en: 18 Septiembre 2011, 21:14 pm »

Perdon que me meta pero:

Llevo tiempo buscando y no encuentro nada al respecto
¿Hay alguna forma de volcar el contenido de un bitmap(de un contenedor) a un array?

Esa (creo) sería la forma mas rápida de encontrar determinado pixel...

Saludos!
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Píxeles y Bucle For
« Respuesta #5 en: 18 Septiembre 2011, 21:25 pm »

Llevo tiempo buscando y no encuentro nada al respecto
¿Hay alguna forma de volcar el contenido de un bitmap(de un contenedor) a un array?

Esa (creo) sería la forma mas rápida de encontrar determinado pixel...
un BMP es un array de por si con un par de bytes mas :P

Aca en un tuto de DirectX para C# explican mas o menos como leer un bmp desde archivo :P: http://www.riemers.net/eng/Tutorials/DirectX/Csharp/Series1/tut10.php
No hace falta saber mucho C# para entenderlo, tiene una buena introduccion :P
En línea

calk9

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Píxeles y Bucle For
« Respuesta #6 en: 18 Septiembre 2011, 21:26 pm »

Aver si me pueden ayudar con mi planteo...
En línea

Sanlegas

Desconectado Desconectado

Mensajes: 131


https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-


Ver Perfil
Re: Píxeles y Bucle For
« Respuesta #7 en: 18 Septiembre 2011, 21:42 pm »

Perdon que me meta pero:

Llevo tiempo buscando y no encuentro nada al respecto
¿Hay alguna forma de volcar el contenido de un bitmap(de un contenedor) a un array?

Esa (creo) sería la forma mas rápida de encontrar determinado pixel...

Saludos!

Si, es posible http://carlosagreda.blogspot.com/2008/02/destripando-un-bmp-24-bits.html

En línea

ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: Píxeles y Bucle For
« Respuesta #8 en: 18 Septiembre 2011, 22:14 pm »

@calk9

¡Tu no te metas!... Hahaha es broma  :xD

Esto te consumirá tiempo valioso siempre:
Citar
Call SetCursorPos(iX, iY)

No entiendo el porqué lo ideal sería colocar el cursor luego de encontrar el pixel que se busca, pero pues sabes lo que haces.

Y todo esto:
Código
  1.           hdc = GetDC(0)
  2.            pxColor = GetPixel(hdc, Mouse.x, Mouse.y)
  3.            ReleaseDC 0, hdc
  4.            Me.Caption = Hex(pxColor)
  5.            If Me.Caption = "AA431B" Then
  6.                Exit For
  7.            End If

 yo lo reduciría a esto:
Código
  1.      Me.Caption = Hex$(point(ix,iy)
  2.      If Me.Caption = "AA431B" Then
  3.          Exit For
  4.      End If

@Raul338, @Tenient101
Pues ambos son buenos tutoriales, pero no me referia a eso precisamente:  :xD

Más bien a cuando la imagen se almacena en un contenedor, por ejemplo hacer unos trazados en un picturebox(lineas, círculos y pintados), todo esto queda almacenado en el campo "image" del contenedor(picturebox o form), ahora volvar el contenido de "image" a un array, creo que la clave está en localizar el punto en memoria donde se almacena "image"... Saludos!
En línea

calk9

Desconectado Desconectado

Mensajes: 69


Ver Perfil
Re: Píxeles y Bucle For
« Respuesta #9 en: 18 Septiembre 2011, 23:45 pm »

Pues sigo teniendo el mismo problema. El API SetCursorPos no es el problema, ese bucle lo hace en unas milesimas de segundo. El problema es el ver el color del pixel.
Gracias igual! ;D

Sigo esperando respuestas...

P.D: Te importaría darme tu msn?
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
de pixeles a vectores
Diseño Gráfico
kaliyas 5 2,801 Último mensaje 21 Noviembre 2005, 14:43 pm
por noob_Setup
pixeles
Diseño Gráfico
_loko_ 1 2,203 Último mensaje 9 Febrero 2006, 07:42 am
por Sub_Cero
Duda (Parar bucle con dato boolean) [bucle while]
Java
Dem0ny 5 18,609 Último mensaje 17 Diciembre 2008, 17:43 pm
por Dem0ny
ACERCA DE PIXELES
Programación Visual Basic
AsTeroine 2 1,689 Último mensaje 19 Febrero 2009, 05:40 am
por AsTeroine
Pixeles!
Programación General
prometheus48 2 2,078 Último mensaje 29 Diciembre 2011, 13:18 pm
por prometheus48
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines