La Web del Programador: Comunidad de Programadores
 
    Pregunta:  45713 - PROPIEDAD IMAGE DEL OBJETO PICTURE
Autor:  Cristian Luis Amveg
Necesitaria saber si alguno puede ayudrme, con algun ejemplo de como se utiliza la propiedad Image del objeto Picture, el problema es que dicha propiedad posee ademas, tambien propiedades y metodos; Render por ejemplo. Dicho metodo posee varios parametros, los cuales necesitaria saber que significan y como puedo utilizarlos.
Si alguno puede ayudarme le agradeceria, ya que he buscado informacion sobre el tema pero no he encontrado nada.
Muchas gracias.

  Respuesta:  edgar pejerrey nuñez
Hay varios métodos hay disponibles para visualizar una imagen en un Picture Box en tiempo de ejecución. Un método podría ser seleccionar la propiedad Picture del control. Pero no funciona directamente. Debemos usar la función LoadPicture:

MiPictureBox.Picture = LoadPicture(nombrearchivo)

Donde nombrearchivo es el nombre de un archivo en uno de los formatos de imagen admitidos, incluyendo la ruta completa, si es necesario. La posición de la imagen y el efecto de la propiedad AutoSize del control son los mismos que cuando cargamos una imagen en tiempo de diseño. Podemos borrar un Picture Box utilizando LoadPicture sin argumento:

MiPictureBox.Picture = LoadPicture()

También podemos copiar una imagen de un Picture Box a otro accediendo a la propiedad Picture del control:

MiPictureBox1.Picture = MiPictureBox2.Picture

Cargar una imagen en un Picture Box con estos métodos es correcto en la mayoría de las ocasiones, pero tiene algunas limitaciones:

La imagen siempre se coloca en la esquina superior izquierda del Picture Box.

El tamaño de la imagen no puede cambiarse, es decir, la imagen siempre se presenta con su tamaño original.

Sólo puede presentarse una imagen cada vez en un control dado.

El método PaintPicture
Este método permite eludir las limitaciones de los anteriores métodos utilizados para cargar una imagen durante la ejecución del programa. Se comienza con una imagen fuente, bien en un control Picture Box o en un formulario. Luego se puede tomar toda la imagen o parte de ella (cualquier región rectangular) y colocarla en cualquier sitio, en otro Picture Box o formulario, o en el Picture Box o formulario fuente. Se puede estirar o encoger la imagen "copiada".

La sintaxis del método PaintPicture:

Objeto.PaintPicture gráfico, x1, y1, w1, h1, x2, y2, w2, h2, código

donde los argumentos son como sigue:

Objeto. El nombre del objeto Picture Box, Form o Printer donde la imagen va a colocarse. Este argumento es opcional. Si se omite, se asume el formulario que tiene el foco.
gráfico. La fuente del gráfico. Debe ser la propiedad Picture de un objeto Form, Picture o Picture Box.
x1, y1. Los valores que indican las coordenadas destino (es decir, la posición del objeto destino donde la esquina superior izquierda de la imagen va a dibujarse). La propiedad ScaleMode del objeto determina la unidad de medida utilizada.
w1, h1. Los valores que indican la anchura y altura destinos de la imagen, utilizando las unidades especificadas por la propiedad ScaleMode del objeto destino. Si la anchura y/o altura destino es mayor o menor que la anchura (w2) o altura (h2) fuente, la imagen se estira o se encoge para encajar. Estos argumentos son opcionales; si se omiten, la anchura (w1) y la altura (h1) fuente se utilizan sin estiramiento ni compresión.
x2, y2. Los valores que indican las coordenadas fuente de la región que va a ser copiada en el objeto fuente (en unidades especificadas por la propiedad ScaleMode del objeto fuente). Estos argumentos son opcionales; si se omiten, se asume 0 (indicando la esquina superior izquierda de la imagen fuente).
w2, h2. Los valores que indican la anchura y altura de la región dentro de la fuente que va a copiarse (en unidades especificadas por la propiedad ScaleMode del objeto fuente). Estos argumentos son opcionales; si se omiten, se utiliza toda la anchura y altura de la fuente.
código. Un valor de tipo Long que define la operación en modo de bit realizada entre los pixeles de la imagen fuente y los pixeles de cualquier imagen existente sobre el destino. Este argumento, que es opcional y es útil únicamente con bitmaps. Si el argumento se omite, la fuente se copia en el destino, reemplazando cualquier cosa que hubiera allí.
Una imagen bitmap puede estar ya allí, pero aunque el destino esté en blanco, algo hay allí, tal vez sólo pixeles blancos. Sobre la extensión de la región copiada, por tanto, cada pixel de la imagen copiada tiene el correspondiente pixel en la misma localización en el destino. El argumento código determina como se combinan estos pixeles.

La operación más simple y frecuente es dejar que cada nuevo pixel reemplace el pixel original. El argumento código para esto es la constante predefinida vbSrcCopy. Otros dos argumentos código útiles son vbBlackness y vbWhiteness, que cambian el rectángulo destino a todo negro o todo blanco. Esto en realidad no es una copia de la imagen fuente, pero aún así hay que especificar una fuente en la sentencia PaintPicture. Otros argumentos código realizan diversas combinaciones lógicas de la imagen fuente con la imagen destino. Se puede usar para crear ciertos tipos de efectos visuales, para ahondar en este tema ir al sistema de ayuda de Visual Basic.