Manipulacion imagenes
Manipulacion imagenes
Que tal? estoy tratando de validar un captcha y se me ocurrio la siguiente solucion! pero con ff.au3 no me es posible. Pasos:
Datos de la imagen: Numeros aleatorios, siempre posicionados en el mismo lugar
1.- Guardo en mi maquina cada numero por separado para usarlos como patron de comparacion.
2.- Al validar el captcha_
2.A.- Guardo la imagen .png a mi maquina.-
2-B.- Particiono la imagen y luego la comparo con los numeros prealmacenados.
3.- Obtengo el valor.-
Mi duda es como guardo la imagen y hago todos esos calculos sin necesidad de tener mi ventana maximizada.-
Si conocen alguna funcion haganmela conocer.
Muchas gracias
Datos de la imagen: Numeros aleatorios, siempre posicionados en el mismo lugar
1.- Guardo en mi maquina cada numero por separado para usarlos como patron de comparacion.
2.- Al validar el captcha_
2.A.- Guardo la imagen .png a mi maquina.-
2-B.- Particiono la imagen y luego la comparo con los numeros prealmacenados.
3.- Obtengo el valor.-
Mi duda es como guardo la imagen y hago todos esos calculos sin necesidad de tener mi ventana maximizada.-
Si conocen alguna funcion haganmela conocer.
Muchas gracias
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Manipulacion imagenes
Lo tienes chungo. Por que te digo esto? Porque si lo quieres hacer así te toca meterte con GDI+ , y eso no es cosa de novatos. Mira en la ayuda la udf que trae AutoIt. Son todas las funciones que empiezan por _GDIPlus_....... .delmarote escribió:Mi duda es como guardo la imagen y hago todos esos calculos sin necesidad de tener mi ventana maximizada.-
Yo, ahora mismo estoy viendo este tema (manejo de gráficos con esta librería desde AutoIt), y para mí que es de lo que más me cuesta programar (me resulta un tema bastante dificil).
Te va a tocar pelearte mucho con las funciones, ejemplos y demás para saber utilizar estas funciones.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Manipulacion imagenes
Muchas gracias! y bueno pelear con el codigo es la mejor forma de aprender
Re: Manipulacion imagenes
Buenassssssssssss...... logre un gran avance !!!!!!!!! pero como siempre tengo un problema
Necesito Cambiar esto....
Por esto....
Pero el segundo codigo no funciona y tira el siguiente error
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\xxx\Desktop\Bot\BOT 2.0\ejemplo.au3"
>Exit code: 0 Time: 9.287
La idea seria... en ves de pedir la direccion de la imagen( como el primer caso) me lo abra directamente! pero no funciona!
Muchas gracias!!!!!!!!!!
PD- con esto ya tendria la validacion del captcha... lo unico q faltaria seria, capturar una imagen del firefox... pero minimizado!
Necesito Cambiar esto....
Código: Seleccionar todo
$fname1=FileOpenDialog("First image","","All images(*.bmp;*.jpg;*.png;)")
If $fname1="" Then Exit
$fname2=FileOpenDialog("Second image image","","All images(*.bmp;*.jpg;*.png;)")
If $fname2="" Then Exit
$bm1 = _GDIPlus_ImageLoadFromFile($fname1)
$bm2 = _GDIPlus_ImageLoadFromFile($fname2)
Código: Seleccionar todo
$fname1=FileOpen("C:\Captchas\1.jpg") ; tmb probe poniendo "1.jpg"
If $fname1="" Then Exit
$fname2=FileOpen("C:\Captchas\2.jpg")
If $fname2="" Then Exit
$bm1 = _GDIPlus_ImageLoadFromFile($fname1)
$bm2 = _GDIPlus_ImageLoadFromFile($fname2)
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\xxx\Desktop\Bot\BOT 2.0\ejemplo.au3"
>Exit code: 0 Time: 9.287
La idea seria... en ves de pedir la direccion de la imagen( como el primer caso) me lo abra directamente! pero no funciona!
Muchas gracias!!!!!!!!!!
PD- con esto ya tendria la validacion del captcha... lo unico q faltaria seria, capturar una imagen del firefox... pero minimizado!
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Manipulacion imagenes
Lee mejor en la ayuda los parámetros de las funciones. A este parámetro le tienes que pasar la ubicación del archivo imagen.
Saludos.
Código: Seleccionar todo
$bm1 = _GDIPlus_ImageLoadFromFile("C:\Captchas\1.jpg")
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\2.jpg")
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Manipulacion imagenes
Gracias por la respuesta! pense que en $fname1 ya me guardaba la direccion del archivo! Igual creo que la solucion que me propones ya la habia implementado... cuando llegue a casa lo pruebo y te confirmo!!!!! Hay alguna forma de guardar el captcha.php sin tener el firefox maximizado? Ahora obtengo el captcha haciendo un screen del captcha!
MUCHAS GRACIAS!
MUCHAS GRACIAS!
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Manipulacion imagenes
Cogiendo la dirección de la imagen directamente del código html y descargándola.delmarote escribió:Hay alguna forma de guardar el captcha.php sin tener el firefox maximizado?
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Manipulacion imagenes
Chefito, la imagen se llama "captcha.php" y es un png... el problema es que nose como automatizar el proceso para guardar esa imagen!
Gracias
PD: existe algun "FF-Page_Analyzer" que funcione?????
Gracias
PD: existe algun "FF-Page_Analyzer" que funcione?????
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Manipulacion imagenes
Mira la dirección url completa de la imagen y bajala con la función InetGet. Mirala en la ayuda.
Para ver la dirección completa de la imagen buscala en el código html de la página. También te puede ayudar a ver su url si en el IE colocas el cursor encima de la imagen, pulsas botón derecho del ratón y le das a propiedades.
Ya te lo he dado mascado . Haz algo de código y si te atascas postealo .
Saludos.
Para ver la dirección completa de la imagen buscala en el código html de la página. También te puede ayudar a ver su url si en el IE colocas el cursor encima de la imagen, pulsas botón derecho del ratón y le das a propiedades.
Ya te lo he dado mascado . Haz algo de código y si te atascas postealo .
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Manipulacion imagenes
Muchas gracias!!!!!!!!!!!! no fue tan complicada la validacion del captcha! espero q no me cambien la imagen jejee
graciasssssssssssss
EDIT: Bueno no todo salio como esperaba... al guardar el captcha me lo guarda con otro valor :S alguna solucion??
gracias
graciasssssssssssss
EDIT: Bueno no todo salio como esperaba... al guardar el captcha me lo guarda con otro valor :S alguna solucion??
gracias
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Manipulacion imagenes
Que significa esto? Que el código de la imagen cambia?delmarote escribió:EDIT: Bueno no todo salio como esperaba... al guardar el captcha me lo guarda con otro valor :S alguna solucion??
Si es esto muchas veces da igual. Prueba a meterle ese código distinto a la página donde te lo has cogido a ver si te va. Muchas veces estos captchas se identifican por fórmulas y valen varios códigos.
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Manipulacion imagenes
BUeno aver... poste parte del codigo!
Como Hago para crear direcciones dinamicas? y no tener que repetir tantas veces "C:\Captchas\9.jpg"
Otra cosa como hago para definir las coordenadas a clonar... porq la comparacion siempre me da False y las coordenadas "supongo" que son las correctas (_GDIPlus_BitmapCloneArea($Imag, 38, 4, 47, 15))
Muchas Gracias
Código: Seleccionar todo
$Imag = _GDIPlus_ImageLoadFromFile("C:\captcha.png")
; Clono Imagen a comparar
$bm1 = _GDIPlus_BitmapCloneArea($Imag, 38, 4, 47, 15)
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\1.jpg")
MsgBox(0, "bm1==bm2", CompareBitmaps($bm1, $bm2))
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\2.jpg")
MsgBox(0, "bm1==bm2", CompareBitmaps($bm1, $bm2))
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\3.jpg")
MsgBox(0, "bm1==bm2", CompareBitmaps($bm1, $bm2))
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\4.jpg")
MsgBox(0, "bm1==bm2", CompareBitmaps($bm1, $bm2))
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\5.jpg")
MsgBox(0, "bm1==bm2", CompareBitmaps($bm1, $bm2))
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\6.jpg")
MsgBox(0, "bm1==bm2", CompareBitmaps($bm1, $bm2))
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\7.jpg")
MsgBox(0, "bm1==bm2", CompareBitmaps($bm1, $bm2))
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\8.jpg")
MsgBox(0, "bm1==bm2", CompareBitmaps($bm1, $bm2))
$bm2 = _GDIPlus_ImageLoadFromFile("C:\Captchas\9.jpg")
MsgBox(0, "bm1==bm2", CompareBitmaps($bm1, $bm2))
Otra cosa como hago para definir las coordenadas a clonar... porq la comparacion siempre me da False y las coordenadas "supongo" que son las correctas (_GDIPlus_BitmapCloneArea($Imag, 38, 4, 47, 15))
Muchas Gracias
- BasicOs
- Site Admin
- Mensajes: 2091
- Registrado: 21 Nov 2006, 19:24
- Ubicación: El Internet - (Canarias, España)
- Contactar:
Re: Manipulacion imagenes
Aquí otro código de manejo de programas JAVA internamente desde Autoit:
http://www.autoitscript.com/forum/index ... opic=87956
Salu22:)
http://www.autoitscript.com/forum/index ... opic=87956
Salu22:)
Re: Manipulacion imagenes
Ufff ya paso mas de un año ajajja, bueno tengo el siguiente problema!
Supongamos que mi captcha tiene el valor "555"
Si yo uso la funcion ;InetGet("captcha.php", "c:\captcha.php.png"), me guarda la imagen pero cambia el valor del captcha por otro!, por lo cual no me sirve esta funcion porq estaria validando un valor que no corresponde.
Ahora bien si yo sobre el captcha hago boton derecho guardar imagen como, y guardo ese captcha, me mantiene el valor "555"...
Este ultimo evento es lo que no logro reproducir con autoit!
Es posible? existe otra funcion similar a la InetGet() para ver si alguna me guarda la imagen sin midificar el valor del captcha????
saludos!!!!!!!!!!!!!!!!
Supongamos que mi captcha tiene el valor "555"
Si yo uso la funcion ;InetGet("captcha.php", "c:\captcha.php.png"), me guarda la imagen pero cambia el valor del captcha por otro!, por lo cual no me sirve esta funcion porq estaria validando un valor que no corresponde.
Ahora bien si yo sobre el captcha hago boton derecho guardar imagen como, y guardo ese captcha, me mantiene el valor "555"...
Este ultimo evento es lo que no logro reproducir con autoit!
Es posible? existe otra funcion similar a la InetGet() para ver si alguna me guarda la imagen sin midificar el valor del captcha????
saludos!!!!!!!!!!!!!!!!
- Chefito
- Profesional del Autoit
- Mensajes: 2035
- Registrado: 21 Feb 2008, 18:42
- Ubicación: Albacete/Cuenca (España)
Re: Manipulacion imagenes
Mira mi última constestación en este post, un poco más arriba: http://www.emesn.com/autoitforum/viewto ... 2375#p8172
No te sirvió lo que te comente? No recibí ninguna respuesta y no se si te funcionó.
Precisamente, esto mismo, también te lo comento aquí:
http://www.emesn.com/autoitforum/viewto ... cha#p10970
Saludos.
No te sirvió lo que te comente? No recibí ninguna respuesta y no se si te funcionó.
Precisamente, esto mismo, también te lo comento aquí:
http://www.emesn.com/autoitforum/viewto ... cha#p10970
Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
Re: Manipulacion imagenes
Chefito! gracias por la respuesta! no funciono eso que me propones!
EDIT: voy a probar la libreria findBMP que encontre en el foro! voy a buscar el recuadro del captcha y voy a descargar la imagen! de esta forma evito descargar mal el captcha en caso de que se mueva del lugar original!
Ahora lo que hago es lo siguiente, funciona, pero si la pagina se corre 1 pixel ya deja de funcionar!
; Initialize GDI+ library
_GDIPlus_Startup()
Sleep(1000)
_ScreenCapture_SetBMPFormat(4)
_ScreenCapture_Capture ("C:\Screen.bmp")
Sleep(1000)
$Imag2 = _GDIPlus_ImageLoadFromFile("C:\Screen.bmp")
Sleep(1000)
$bm1 = _GDIPlus_BitmapCloneArea($Imag2, 576, 106, 110, 20, $GDIP_PXF32RGB)
saludos!
EDIT: voy a probar la libreria findBMP que encontre en el foro! voy a buscar el recuadro del captcha y voy a descargar la imagen! de esta forma evito descargar mal el captcha en caso de que se mueva del lugar original!
Ahora lo que hago es lo siguiente, funciona, pero si la pagina se corre 1 pixel ya deja de funcionar!
; Initialize GDI+ library
_GDIPlus_Startup()
Sleep(1000)
_ScreenCapture_SetBMPFormat(4)
_ScreenCapture_Capture ("C:\Screen.bmp")
Sleep(1000)
$Imag2 = _GDIPlus_ImageLoadFromFile("C:\Screen.bmp")
Sleep(1000)
$bm1 = _GDIPlus_BitmapCloneArea($Imag2, 576, 106, 110, 20, $GDIP_PXF32RGB)
saludos!