Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
[SOLUCIONADO] Guardar Una Imagen Concreta De Una Web Con Webview
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje [SOLUCIONADO] Guardar Una Imagen Concreta De Una Web Con Webview 
 
Buenas!! hacia tiempo que no pasaba por el foro (tambien tiempo que no programaba...) el caso es que llevo un par de dias buscando entre mis antiguos proyectos y por la red como guardar una imagen concreta de una pagina web que estoy viendo a traves de un webview....... es necesario el webview en lugar de descargarla con wget, curl o similar? si, la imagen se genera automaticamente, si refresco es otra :/

esperaba que fuese algo tipo:

imagen1 = New Image(32, 32)
Paint.Begin(imagen1)

'Selecciono la imagen del html y la pinto en i porque es la salida.
miicono = Me.WebView1.Document.FindFirst("#icono")
miicono.Paint()
picture1 = imagen1.Picture
PictureBox1.Picture = picture1
 


pero no consigo ni mostrarla en un picturebox ni guardarla en un archivo, en ambas obtengo una imagen borrosa de bits mal formados, a veces con el contenido borroso de otras imagenes de la web que nada tienen que ver con esa....

Alguna idea de por donde afrontar el desafio?
 



 
última edición por CanihoJR el Miercoles, 11 Abril 2018, 20:13; editado 2 veces 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar Una Imagen Concreta De Una Web Con Webview 
 
De esta imagen conocemos exactamente su web dirección ?
Sì o No ?
 



 
última edición por vuott el Domingo, 04 Marzo 2018, 20:59; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar Una Imagen Concreta De Una Web Con Webview 
 
Si, claro, siempre es www.web.com/img/micono (sin extension ni nada, me temo que puedan ser autogeneradas por que como ya digo, si actualizo es una nueva...) pero si la descargo con el navegador es un simple png
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar Una Imagen Concreta De Una Web Con Webview 
 
www.web.com/img/micono no es la dirección de la image, sino de una pagina web que no existe...  no llego a comprender...

micono.png
Descripción:  
Tamaño: 22.43 KB
Visto: 32 veces

micono.png

micono.png
Descripción:  
Tamaño: 22.43 KB
Visto: 32 veces

micono.png

micono.png
Descripción:  
Tamaño: 22.43 KB
Visto: 32 veces

micono.png


 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar Una Imagen Concreta De Una Web Con Webview 
 
ups perdón! fué un ejemplo que quise mostrarte, no pensé que preguntabas por la web concreta.... basicamente seria esta: http://www3023ud.sakura.ne.jp/moeruavatar/m.cgi , genera gif a raiz de una serie de opciones... pero no sé como descargar esa imagen win usar wget ni nada, solo webview..... sigue resultandome raro que no pueda insertarla en un picture box cuando recuerdo haberlo hecho hace tiempo de esa forma y del picturebox hacia el .save y listo.... :/ pero ahora no me funciona nada, no sé que cambió...
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar Una Imagen Concreta De Una Web Con Webview 
 
Por lo que atañe a esta pagina: http://www3023ud.sakura.ne.jp/moeruavatar/m.cgi, es posible este codigo (hace fatla activar los Componentes de gambas gb.net y gb.net.curl):

Private myhttp As New HttpClient As "myhttp"
Private s As String


Public Sub Form_Open()

  WebView1.Url = "http://www3023ud.sakura.ne.jp/moeruavatar/m.cgi"

End


Public Sub WebView1_Load()

' Intenta impedir un segundo paso después de la carga de la imagen en WebvVew:
  If Left(WebView1.HTML, 6) <> LCase("<html>") Then Return

'  Identifica la dirección web de la imagen:
  s = Scan(WebView1.HTML, "*src=* width*")[1]
  
' Elimina las comillas de la dirección de la imagen:
  s = Replace(s, "\x22", Null)

  myhttp.URL = s
  
  myhttp.Timeout = 15
 
' Descarga los datos del archivo imagen en una ruta elegida, contenente también el nombre del archivo imagen recreado:
  myhttp.Get(Null, "/tmp/imagen." & File.Ext(s))

End


Public Sub MyHTTP_Finished()  
    
  MyHTTP.Close  

' Carca en el "PictureBox" el archivo imagen recreado:
  PictureBox1.Picture = Picture["/tmp/imagen." & File.Ext(s)]

End

 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar Una Imagen Concreta De Una Web Con Webview 
 
vuott:

Interesante el ejemplo. Gracias !!!
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar Una Imagen Concreta De Una Web Con Webview 
 
buenisimo el codigo! peeeero... ese componente es una implementación de curl si no me equivoco, por lo que alfinal es lo mismo, la direccion de la imagen siempre es esa misma, podria hacer un wget y obtengo lo mismo (igualmente el codigo tuyo me parece buenisimo para otros proyectos en mente! no sabia hacerlo asyncrono :D) el problema reside en que esa imagen se genera a partir de un formulario y unas cookies.... existe alguna manera de enviar las cookies del webview al httpclient?? en cuyo caso, generaria la misma...

Por eso intentaba pasarlo a un picture view y de ahí me era mas facil salvarlo........ pero no consigo averiguar por que obtengo una imagen distorsionada de pixeles al azar en lugar de la imagen.... cuando tengo otro codigo antiguo que si funciona y lo copié de ahí

'Compruebo que la web este totalmente cargada
  If (Me.WebView1.Progress >= 1) Then
    Print "Cargada"
    'Compruebo que existe el captcha.
    If (Me.WebView1.Document.FindFirst("#adcopy-puzzle-image-image")) Then
      Print "Encontrado captcha"

      imagen1 = New Image(300, 150)
      Paint.Begin(imagen1)

        'Selecciono la imagen del html y la pinto en i porque es la salida.
    captcha1 = Me.WebView1.Frame.Document.FindFirst("#adcopy-puzzle-image-image")
    captcha1.Paint()
    picture1 = imagen1.Picture
    Me.PictureBox1.Picture = picture1
    Endif
  Endif


Con ese codigo obtengo la imagen del captcha de solvemedia y lo muestro en un picture box, me funciona sin problemas en el programa antiguo pero no si vuelvo a intentar copiarlo en otros programas......
 



 
última edición por CanihoJR el Lunes, 05 Marzo 2018, 22:12; editado 1 vez 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar Una Imagen Concreta De Una Web Con Webview 
 
CanihoJR escribió: [Ver mensaje]
el problema reside en que esa imagen se genera a partir de un formulario y unas cookies.... existe alguna manera de enviar las cookies del webview al httpclient?? en cuyo caso, generaria la misma...


Acerca del uso de cookies con HttpClient tal vez te sirva el sig hilo: https://foro.gambas-es.org/viewtopic.php?f=5&t=5817

Suena interesante lo de usar las mismas cookies, si intentas ese camino nos mantienes informados

Saludos!
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Guardar Una Imagen Concreta De Una Web Con Webview 
 
Sigo el camino de pasarlo a un picturebox, de hecho he conseguido hacer funcionar el codigo anterior... simplemente cambiando a otra imagen JPG parece ser que el problema de los pixeles se ocasiona en los PNG con transparencia....

 test

Ahi podeis ver (una chapuza) pero en teoria es un logo redondo amarillo, solo que cogi el recorte muy pequeño (32x32) en teoria solo deberia verse lo amarillo, pero tanto en el picturebox como en el imageview me genera esa especie de "ruido" que además va variando segun ejecuto el codigo de nuevo (asociado al boton)... puede ser cosa del .Paint() ???
 



 
CanihoJR - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Puedo Guardar Lo Hecho En Un Drawingarea? ... cyberx0x General 4 Sabado, 24 Octobre 2009, 18:13 Ver último mensaje
cyberx0x
No hay nuevos mensajes Como Puedo Guardar Una Imagen De Un Articulo? CanihoJR General 6 Jueves, 29 Octobre 2009, 03:20 Ver último mensaje
soplo
No hay nuevos mensajes Guardar Blob Desde DB En Fs (no Es Una Ima... mckaygerhard Bases de Datos 4 Viernes, 16 Agosto 2013, 15:01 Ver último mensaje
mckaygerhard
No hay nuevos mensajes Como Guardar Una Imagen En Sqlite En Un Ca... v3ctor Bases de Datos 9 Viernes, 01 Enero 2016, 14:55 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron