logotipo

Cargar una imagen desde Internet en un control Picture Box



Descripción general

Como cargar una imagen de Internet en un control Picture Box y no perecer en el intento

[TOC] Tabla de Contenidos


↑↑↑

Introducción

Existe un poco de confusión (en parte generada por la documentación MSDN) sobre la forma de cargar una imagen en el nuevo control .NET PictureBox (Compatible con NET Framework: 3.0, 2.0, 1.1, 1.0)

De hecho he encontrado código muy diverso sobre la forma de cargar una imagen, a modo de ejemplo te propongo los siguientes enlaces, pero solo para satisfacer tu curiosidad, la verdad es que se han quedado un poco obsoletos por pertenecer a VB6 o incluso, a versiones anteriores

Después de todo este despliegue, y después de trastear un poco, resulta que, la forma mas sencilla de cargar una imagen, es estableciendo la propiedad ImageLocation con la situación de la imagen, y después, cargar la imagen de forma sincrónica utilizando el método Load o de forma asincrónica mediante el método LoadAsync.

De esta forma, no importa donde este la imagen, puede estar en un fichero en disco, o bien en una dirección de Internet, el proceso funciona de la misma forma


↑↑↑

Como usar el código de ejemplo

A continuación te presento una función que hace ese trabajo para utilizarla solo hay que ‘cortar y pegar’


↑↑↑

Una pequeña explicación sobre el código

La función tiene un parámetro, a través del cual se proporciona la situación de la imagen, por ejemplo, una dirección de Internet, o una dirección del disco local.

Internamente se define un PictureBox, pasamos la cadena con la situación del fichero a la propiedad ImageLocation y después cargamos la imagen con el método Load.

La imagen cargada se devuelve en una clase image, porque esta es la clase que .Net Framework utiliza para contener y/o trabajar con imágenes, de hecho, el control PictureBox, tiene la propiedad Image que obtiene / establece el objeto Image que se va a mostrar


↑↑↑

Código del ejemplo

''' <summary>
'''    Carga una imagen en una clase [image] leyéndola desde cualquier situación
''' </summary>
''' <remarks>
''' <para> - Lenguaje.: Visual Basic .NET (2007)
'''         (Compatible con  NET Framework: 3.0, 2.0)</para> 
''' <para> - Autor.: joaquin@medina.name </para>
''' <para> - Creación de la función .: 30/10/2007 14:43:30 </para>
''' <para> - Código BirraWare de uso libre</para>
'''</remarks>
''' <param name='situacionDeLaImagen'>
'''    <para>Cadena que contiene la situación FISICA de la imagen</para>
'''    <para>Puede ser un nombre local de un fichero</para>
'''    <para>Ejemplo.: c:/fotos/logotipo.jpg</para>
'''    <para>Puede ser una dirección URI </para>
'''    <para>Ejemplo.: http://jms32.eresmas.net/graficos/logo_gj01.gif</para>
''' </param>
''' <returns>Una clase <c>image</c> con la imagen cargada </returns>
''' <exception cref='Exception'>Cuando se produce algún error</exception>
Friend Shared Function ObtenerImagen( _
    ByVal situacionDeLaImagen As String) _
    As System.Drawing.Image

    '-----------------------------------------------------
    If String.IsNullOrEmpty(situacionDeLaImagen) = True Then
        'Limitacion Compatible con  NET Framework: 3.0, 2.0)
        Throw New ArgumentException( _
        "La situación de la imagen es una cadena vacia o nula", _
        "situacionDeLaImagen")
    End If

    '-----------------------------------------------------
    Dim pictureBox As System.Windows.Forms.PictureBox = Nothing
    Dim unaImagen As System.Drawing.Image = Nothing

    '-----------------------------------------------------
    Try
        pictureBox = New System.Windows.Forms.PictureBox
        '----------------------------------------------------
        ' Si el nombre de la imagen lleva el texto
        ' [file:///]  QUITARLO porque genera errores 
        If situacionDeLaImagen.IndexOf("file:///", 0) = 0 Then
            situacionDeLaImagen = situacionDeLaImagen.Substring(8)
        End If
        '--------------------------------------------------------

        ' Carga en el control [pictureBox ] la imagen 
        ' puede ser un nombre local de un fichero
        ' Ejemplo.: c:/fotos/logotipo.jpg
        ' Puede ser una dirección URI 
        ' Ejemplo.: http://jms32.eresmas.net/graficos/logo01.gif
        pictureBox.ImageLocation = situacionDeLaImagen
        ' carga la imagen de forma síncrona
        pictureBox.Load()
        ' mover la imagen a una clase image para devolverla
        unaImagen = pictureBox.Image
        ' se devuelve el valor despues del end try
        ' -------------------------------------------------
    Catch ex As Exception
        Throw ex
    Finally
        If Not (pictureBox Is Nothing) Then
            pictureBox.Dispose()
            pictureBox = Nothing
        End If
    End Try
    Return unaImagen
End Function


↑↑↑

Una última cosa


↑↑↑

A.2.Enlaces

[Para saber mas]
-
[Grupo de documentos]
[Documento Index]
[Documento Start]
[Imprimir el Documento]

↑↑↑

A.3.Información del documento

Título
Cargar una imagen desde Internet en un control Picture Box
Autor
Palabras claves de busqueda
.NET, control, PictureBox
Contenido del documento
Como cargar una imagen de Internet en un control Picture Box y no perecer en el intento
Tabla de contenidos
[ Introducción ], [ Como usar el código de ejemplo ], [ Una pequeña explicación sobre el código ], [ Código del ejemplo ], [ Una última cosa ]
Archivado en:
documentos/informatica/programacion/puntoNET/Controles/PictureBox
Fechas
Fecha Creación
2007-10-30T22:16:16 [martes, 30 de octubre de 2007 a las 22:16:16 horas]
Fecha Publicación
2007-10-30T22:16:16 [martes, 30 de octubre de 2007 a las 22:16:16 horas]
Fecha de la última actualización en disco
Fecha Valido Desde
2007-10-30T22:21:59 [martes, 30 de octubre de 2007 a las 22:21:59 horas]
Fecha Disponible Desde
2007-10-30T22:22:01 [martes, 30 de octubre de 2007 a las 22:22:01 horas]
Fecha última Modificación
2007-10-30T22:16:16 [martes, 30 de octubre de 2007 a las 22:16:16 horas]
Naturaleza del recurso
Text
IMT (Internet Media Type)
text/xhtml+xml
Juego de caracteres)
ISO 8859-1
Idioma
es-ES [es = Español] [ES = España]
Copyright
Texto con los derechos
© Copyright Joaquin 'jms32®' Medina Serrano 1.997-2007 - Reservados todos los derechos.
Licencia
[http://creativecommons.org/licenses/by-sa/2.5/es/deed.es_CL]
Audiencia
A quien puede resultar util este recurso
Programadores
Nivel de conocimientos o educativo
Visual Basic .NET
Información obtenida con JavaScript
Situación de ESTE documento en la red
¿ Quien ha llamado a ésta página ?
Navegador empleado para ver ésta página
© 1.997- 2.008 - La Güeb de Joaquín
Joaquin Medina Serrano
Ésta página es española