none
Imagen compartida en la web con Google Drive a PictureBox en VB.Net

    Pregunta

  • Hola, Buenos días desarrolladores, tengo una pregunta, es posible cargar a un picturebox en un form hecho en VB.Net una imagen compartida públicamente a través de Google Drive?

    El codigo para una carpeta tipica que uso es:

    PictureBox1.Image = Image.FromFile("ruta_imagen")

    Pero quisiera saber si hay alguna forma de cargar la imagen desde un enlace de Internet, o alguna forma de entrar al enlace, descargar la imagen a una ruta especifica y de ahi cargarla a mi picturebox. Alguien tendrá alguna forma de hacer lo anterior?

    Esta es el enlace, el cual se encuentra compartida públicamente la imagen:

    https://drive.google.com/open?id=0B69XsYfHYc2BWjhqMzdrM2l0eE0

    De anterior muchas gracias a todos.


    Carlos

    jueves, 29 de diciembre de 2016 17:42

Respuestas

  • Primero descárgate la imagen a un array de bytes. Hay muchas formas de hacerlo, pero quizá la más simple sea usando la clase WebClient. Y una vez que tienes los bytes de la imagen, pásalos a un Image y cárgalo en el PictureBox:

    Dim wc As New WebClient()
    Dim datos as Byte() = wc.DownloadData("https://drive.google.com/open?etc etc")

    Dim ms as New MemoryStream(datos)
    PictureBox1.Image = Image.FromStream(ms)


    jueves, 29 de diciembre de 2016 19:13

Todas las respuestas

  • Primero descárgate la imagen a un array de bytes. Hay muchas formas de hacerlo, pero quizá la más simple sea usando la clase WebClient. Y una vez que tienes los bytes de la imagen, pásalos a un Image y cárgalo en el PictureBox:

    Dim wc As New WebClient()
    Dim datos as Byte() = wc.DownloadData("https://drive.google.com/open?etc etc")

    Dim ms as New MemoryStream(datos)
    PictureBox1.Image = Image.FromStream(ms)


    jueves, 29 de diciembre de 2016 19:13
  • Me sale un error de este tipo, no soy muy bueno en este tema. Espero me puedas apoyar jeje.

    Carlos

    jueves, 29 de diciembre de 2016 19:45
  • ¡OJO! Para que esto funcione, en la URL que pones en el DownloadData hay que poner de verdad la URL real de la imagen. No vale con poner una URL que cuando la llamas desde el navegador se pone a dialogar con el servidor y finalmente después de varios viajes de ida y vuelta al final sale en pantalla una página que dentro contiene la imagen. Lo digo porque si te fijas en la URL que pusiste en el ejemplo, y la cargas en un navegador con la F12 capturando el tráfico, verás que hace nada menos que 28 peticiones al servidor web (y al final, una de esas 28 es la que de verdad te trae la imagen, el resto son de relleno). Para que funcione la descarga, a tu código le tienes que dar la URL "final" que descarga la imagen, no sabe hacer todo el manejo de html, javascript y css que hace el navegador cuando le pones la misma URL "compleja" en lugar de la URL "final".

    En tu caso concreto, la URL "final" que yo veo en la F12 es https://lh5.googleusercontent.com/R9-HtJQWW3gxq912lJCGpfZHHdIBXE5zWFbtd1Gpf8TQpLPkMGRtBRQpehiokCL3X91fmTZD=w1512-h411

    Pero hay que tener cuidado con esto, porque es muy posible que esa URL la generen dinámicamente y tenga una validez limitada en el tiempo o dependiente de otros parámetros, por lo que puede ser que no funcione si la copias directamente de este mensaje. Tendrás que hacer tu propia captura con F12 y ver cuál es la que te sale a ti.

    viernes, 30 de diciembre de 2016 8:50