Haga clic aquí para instalar Silverlight*
LatinoaméricaCambiar|Todos los sitios de Microsoft
Microsoft
|MSDN Library|Descarga|Desarrollador 5 Estrellas|Net Protector|Media Center|Contacto
Colocar Imagen en un PictureBox a partir del Control OpenFileDialog
Tecnología: VB y VC#
Autor: Alexander Jimenez
 

Muchas ocasiones en nuestros formularios de Windows (Windows Forms) deseamos obtener la forma de incorporar a nuestros controles de PictureBox una imagen, pero más aun que nos muestre la ubicación de las carpetas de imagen para que nos permita seleccionarlo y cargarlo luego a nuestro control… esto en las mayorías de las veces se no hacia tarea difícil.

Para empezar a explicar todo debemos comenzar con definir los elementos a utilizar, estos términos son provenientes de la librería de MSDN:

El control PictureBox de formularios Windows Forms se utiliza para mostrar gráficos en formato de mapa de bits, GIF, JPEG, metarchivo o icono. El componente OpenFileDialog de los formularios Windows Forms es un cuadro de diálogo preconfigurado. Es el mismo cuadro de diálogo Abrir archivo que expone el sistema operativo de Windows. Se hereda de la clase CommonDialog.

Teniendo los conceptos ya aclarado comenzamos con el tema que nos interesa =) el como cargar la imagen… para ello estaré escribiendo el código en dos lenguajes que es Visual Basic 2005 y Visual C# 2005.

Paso 1: Para ello comenzaremos con crear nuestro proyecto. Y debemos abrir nuestro Visual Studio 2005 Standar, Professional, Team Suite o Express cualquiera de ellos nos servirá.

Paso 2: Seleccionamos el tipo de proyecto a utilizar en este caso sería un Windows Application el lenguaje a utilizar esta de su parte =), por ahora vamos a llamar al proyecto PruebaOpenImagen.

Visual C#:



Visual Basic:



Paso 3: Agregaremos a nuestro Form los controles Button, OpenFileDialog y el PictureBox la cual lo encontraremos en nuestro cuadro de herramientas (si no aparece le dan a las teclas Crtl+Alt+k).

Al botón será el único que le modificáremos una propiedad llamada TEXT para colocarle “Cargar Imagen”.



Paso 4: Luego de agregar los controles a utilizar procedemos a la escritura del código, es decir, la parte más emocionante de este mini tutorial =)… le damos dos veces click al botón que agregamos al formulario.

Paso 5: Realizaremos dos declaraciones el primero es el Stream para almacenar toda la información proveniente de la imagen a buscar por lo tanto como no tenemos ninguna info lo dejaremos vacio y el segundo para instanciar una nueva apertura del Control OpenFileDialog.

En Visual Basic:

Dim miStream As IO.Stream = Nothing
Dim openFileDialog1 As New OpenFileDialog()

En Visual C#:

System.IO.Stream MiStream = null;
OpenFileDialog openFileDialog1 = new OpenFileDialog();

Paso 6: Empezamos a darles valores necesarios al Cuadro de Dialogo para que nos retorne lo que deseamos. Donde los siguientes elementos nos serviran:

InitialDirectory=Nos indicara cual sera el directorio predeterminado.

Filter= Que tipos de archivos mostrara el OpenFileDialog, la forma ideal es: Nombre|*.Formato

FilterIndex= Este nos indicara cual de los tipos de archivos indicado en filter sera el predeterminado.

RestoryDirectory= para cuando se hagan nuevas busquedas retorne al directorio predeterminado.

En Visual Basic:

openFileDialog1.InitialDirectory = "c:\"
openFileDialog1.Filter = "JPG(*.jpg)|*.jpg|PNG(*.png)|*.png|GIF(*.gif)|*.gif|Todos(*.Jpg, *.Png, *.Gif, *.Tiff, *.Jpeg, *.Bmp)|*.Jpg; *.Png; *.Gif; *.Tiff; *.Jpeg; *.Bmp";
openFileDialog1.FilterIndex = 2
openFileDialog1.RestoreDirectory = True

En Visual C#:

openFileDialog1.InitialDirectory = "C:\\";
openFileDialog1.Filter = "JPG(*.jpg)|*.jpg|PNG(*.png)|*.png|GIF(*.gif)|*.gif|Todos(*.Jpg, *.Png, *.Gif, *.Tiff, *.Jpeg, *.Bmp)|*.Jpg; *.Png; *.Gif; *.Tiff; *.Jpeg; *.Bmp";
openFileDialog1.FilterIndex = 4;
openFileDialog1.RestoreDirectory = true;

Paso 7: Procedemos a decirle a nuestro OpenFileDialog que pasaría si encuentra el archivo que deseamos en este caso la imagen.

En Visual Basic:

     If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
            Try
                miStream = openFileDialog1.OpenFile()
                If (miStream IsNot Nothing) Then
                    'Dim NombreArchivo as String;
                    'Dim RutaArchivo as String;
                    'RutaArchivo = openFileDialog1.FileName.ToString()
                    'NombreArchivo = Path.GetFileName(RutaArchivo)
                    PictureBox1.Image = System.Drawing.Bitmap.FromStream(miStream)
                End If
            Catch Ex As Exception
                MessageBox.Show("Error: No se puede carga la imagen " & Ex.Message)
            End Try
        End If

En Visual C#:

if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
      try
        {
          if ((MiStream = openFileDialog1.OpenFile()) != null)
             {
                using (MiStream)
                  {
                    //string NombreArchivo;
                    //string RutaArchivo;
                    //RutaArchivo = openFileDialog1.FileName.ToString();
                    //NombreArchivo = Path.GetFileName(RutaArchivo);
                    pictureBox1.Image = System.Drawing.Bitmap.FromStream(MiStream);
                   }
             }
             }
                catch (Exception ex)
             {
             MessageBox.Show("Error: No se puede carga la imagen " + ex.Message);
         }
    }

Nota: Entre las Comillas de ambos Código (VB y VC#) he colocado la declaración de dos variable (NombreArchivo y RutaArchivo) para captura la ruta y para capturar solo el nombre del archivo seleccionado luego de la declaración les deje la forma de cómo llenar dichas declaraciones.

Paso 8: El gran final… darle a la Tecla F5 para compilar nuestro proyecto…



Conclusión: De la misma forma como se sube una imagen al PictureBox se puede usar el control OpenFileDialog para la apertura de archivos, solo se debe cambiar la ruta y bueno cambiar algunas sentencias de acuerdo a lo que se desea hacer.

Espero que este mini tutorial le allá sido de mucha utilidad.


 

©2009 Microsoft Corporation. Todos los derechos reservados. Póngase en contacto con nosotros |Aviso Legal |Marcas registradas |Privacidad
Microsoft