Sección de tutoriales y manuales vb

Control PictureBox - Caja de gráficos e imágenes

Volver al índice



 

 

 

 

 

 

 

 

 

 

 

-- -- Indice :

 

 

 

 


Descripción del control PictureBox

El control PictureBox se utiliza para mostrar y cargar archivos de imagen, también para dibujar figuras mediante los métodos gráficos , y también como control contenedor de otros controles, como los controles Frame

Vista de un picturebox con un gráfico cargado

Vista previa de la Propiedad Picture del control PictureBox

 

Vista de un PictureBox con un dibujo hecho por nosotros, en este caso un rectángulo :

 


Propiedad Picture

La principal propiedad del control PictureBox se llama precisamente Picture.

Esta propiedad es la que indica el gráfico que estará cargado. Para cargar un gráfico en visual basic desde el disco, se usa la función LoadPicture. A Esta función le debemos indicar como parámetro la ruta del fichero

Por ejemplo si quisiera cargar un archivo de imagen llamado paisaje.jpg que está ubicado en la unidad c:, y que se cargue cuando le damos un click a un CommandButton, tendriamos que hacer esto:

De esta manera estamos cargando el archivo en tiempo de ejecución. Se dice tiempo de ejecución ya que el archivo lo estamos cargando cuando está corriendo el programa. En cambio si quisiéramos cargar el archivo gráfico en tiempo de diseño, tendríamos que seleccionar el control Picture que colocamos en el formulario, ir a la ventana de propiedades de Visual basic, buscar la propiedad Picture, y seleccionar mediante un cuadro de diálogo de windows, buscarlo en la Pc, y cargar el archivo que queramos. Luego de hacer esto, automáticamente se cargaría la imagen en el control.

Nota : El archivo de imagen, Debe ser obligatoriamente un gráfico gif, jpg, bmp, ico, cur . No asi otros formatos, como por ejemplo el PNG, o Tiff. ( Aunque se puede leer estos formatos, pero mediante otras técnicas, utilizando el api de windows )

En este enlace podés descargar un ejemplo que permite mediante el api de windows poder ver archivos Png en visual basic en un control Picture o Formulario

Ahora ¿ Cómo borrar en tiempo de ejecución la imagen cargada y dejar el Picture vacío ?

Muy simple, debemos hacer lo siguiente:

 

Otra forma de eliminar la imagen es mediante la palabra reservada de vb Nothing.

Una cosa importante es que al utilizar LoadPicture para cargar una imagen, cuando le pasamos la ruta del archivo, el path debe ir entre comillas, y obviamente el path debe ser una ruta a un archivo existente, de lo contrario Visual Basic produciría un error al intentar cargar un archivo que no existe. Si te llegara a dar un error comprueba que escribiste bien la ruta y que el archivo está realmente ubicado allí.

Una forma de comprobar la ruta es mediante un controlador de error de la siguiente forma:

Colocar un Botón en el formulario y un Picture

 


Propiedad Autosize

Esta propiedad lo que hace es adaptar o ajustar el control a las dimensiones del gráfico cargado.

Los posibles valores que le podemos dar son True o False. Si le pasamos True el control se autoajusta al tamaño de la imagen, si le pasamos False el control queda con el ancho y alto sin autoajustarse al gráfico

Esta captura muestra esto mismo, el Picture de la izquierda tiene la propiedad Autosize en False, mientras que el otro la tiene en True.

Imagen previa que mustra como utilizar la propiedad AutoSize del control de image

 


Usar el PictureBox como contenedor

El control PictureBox también funciona como contenedor de otro controles. Esto quiere decir que podemos colocar controles TextBox, botones etc..., dentro del control , y estos estarán contenidos.

Ejemplo : Colocar un Picture1 en el formulario con 2 CommandButton de la siguiente manera:

 

Ejemplo de como utilizar el control picture como contenedor de objetos

 

En la propiedad caption del Command1 coloca "Ocultar PictureBox" y en el otro "Mostrar PictureBox"

Ahora selecciona los controles que quieras de la barra de controles y dibujalos dentro del Picture1. Asegurate que los dibujes dentro del mismo

Los botones Command1 y Command2 hacen lo mismo que el ejemplo anterior, es decir mediante la propiedad Visible del Picture1 , ocultan y hace visible nuevamente al PictureBox, utilizando el valor True o False respectivamente.

Al ejecutar el program, a podés ver que cuando ocultás el PictureBox, todos los demás controles también se ocultan, es decir esto demuestra que el control Picture es el contenedor de los otros. Si no llegara a ocultarse todos los demás controles, es porque hiciste mal el paso de ubicarlos dentro del Picture. En este caso asegurate que al dibujarlos queden dentro del mismo. Otra forma de colocar controles dentro de un picture y que queden contenidos en él, es cortar el control con el comando Cortar (click derecho sobre el mismo) y seleccionar el Picture y cuando está seleccionado lo pegás, automáticamente de esta forma ya pasa a estar contenido.

Otro control que permite hacer de contenedor es el control Frame

 


Propiedad Container - Insertar controles en tiempo de ejecución

El anterior ejemplo, mostraba como colocar los controles en tiempo de diseño, pero hay veces que es necesario por algún motivo hacerlo si o si en tiempo de ejecución.

Para poder colocar los controles dentro de un contenedor, podemos usar la propiedad Container .

Este simple ejemplo muestra como insertar un control TextBox y un Commandbuton dentro de un Picture1 al cargar el formulario, es decir en el evento FormLoad

 

Colocar en el form1 : Un Text1, command1 y un Picture1

Color el código fuente en el formulario

 


Propiedad Autoredraw

La propiedad AutoRedraw es una propiedad muy importante y muy utilizada cuando se usa un picturebox para dibujar sobre el control

Lo que permite hacer la propiedad Autoredraw, es que al estar activada (con el valor True), y utilizar los métodos gráficos, por ejemplo dibujar un círculo, una linea, o cualquier imagen / dibujo, cuando se repinte el control, la imagen no se pierda, es decir que se mantenga. De esta manera Visual basic automáticamente vuelve a dibujar la imagen. Esta propiedad por defecto se encuentra en false. Luego es posible borrar la imagen con el método Cls

Puedes ver un simple ejemplo de esto mismo en el siguiente código:

Esto dibuja una cuadrado en el picture1 al presionar un botón. Luego, podés minimizar y volver a maximizar la ventana del formulario y ver que el dibujo se mantiene ya que la propiedad AutoRedraw se ha establecido en True

Colocar un botón y un picturebox en el formulario ( Command1 y picture1 )

Ahora, prueba este mismo código que es igual al anterior, pero se ha establecido la propiedad AutoRedraw en False. Al presionar el botón se dibujará el rectángulo de todas formas, pero si minimizas la ventana y la vuelves a maximizar, el dibujo se perderá

Colocar un botón y un picturebox en el formulario ( Command1 y picture1 )

Nota. Cuando la propiedad AutoRedraw se encuentra en True, el evento Paint del picturebox nunca se ejecuta. En cambio cuando se encuentra en False, el evento Paint se ejecutará cada ves que se repinte el control, ya sea cuando se minimiza y maximiza el formulario, cuando se tapa un área del control mediante otra ventana de windows por ejemplo.

Este código muestra que se ejecuta el evento paint, ya que la propiedad AutoRedraw se encuentra en False

Ahora si en cambio colocas en el código anterior, la propiedad AutoreDraw en true, puedes comprobar que el evento Paint no se ejecuta nunca.

 


Guardar la imagen del picturebox como BMP

Utilizando método SavePicture de vb es posible grabar en disco un archivo BMP, con el gráfico cargado en el control ( propiedad Picture del PicBox). El uso de este método o función es muy simple. A SavePicture se le debe pasar dos parámetros:

Por ejemplo:

El código anterior genera un archivo BMP en la unidad c: llamado imagen.bmp

Nota: En este enlace hay tutorial básico con ejemplos que muestra como utilizar los métodos loadpicture, savepicture y paintpicture

 


Propiedad Image

La propiedad Image del control PicBox es una propiedad de solo lectura. Esta Devuelve un controlador o manipulador, proporcionado por Microsoft Windows, para un mapa de bits persistente. Esto quiere decir que, si hemos utilizado los métodos gráficos para crear figuras , imágenes o cualquier dibujo en el control, podemos acceder a la imagen mediante este Handle o controlador.

Este simple ejemplo muestra como grabar en disco un archivo de imagen de mapa de bits ( BMP ) , con el contenido del control utilizando el método savePicture. Pero a diferencia del ejemplo anterior, en el que se pasaba la propiedad Picture a SavePicture, en este caso se pasará como parámetro la propiedad Image, ya que la imagen no es un mapa de bits cargado en la propiedad picture, si no que el dibujo se encuentra realizado mediante los métodos gráficos.

Colocar dos botones ( Command 1 y Command 2) , y un picturebox llamado picture 1

Pegar el Código fuente en el formulario

 


Dibujar en un picturebox con los métodos gráficos

En la siguiente página hay un tutorial básico con ejemplos para poder utilizar los métodos gráficos : ver tutorial

En este otro enlace hay un programa muy simple, que también muestra como utilizar dichos métodos en un PictureBox para poder dibujar figuras : Ver Programa de ejemplo

 


Enlaces relacionados

 

 


Volver al índice

 

 


Buscar en Recursos vb