2 de noviembre de 2019

Cómo poner una imagen sobre otra en un formulario

Cómo poner una imagen sobre otra en un formulario

Artículo original: How to put one image over another in a form
https://vfpimaging.blogspot.com/2007/10/how-to-put-one-image-over-another-in.html
Autor: Cesar Ch.
Traducido por: Luis María Guayán


Esto es una cosa muy básica y fácil.

La imagen que quedará en la parte superior debe tener algún tipo de transparencia establecida. Se recomienda que utilice un BMP de 24bits. VFP convertirá automáticamente la parte blanca de la imagen en transparente, como en la siguiente imagen, si pone la propiedad "BackStyle" del objeto Imagen en "0 - Transparente". No olvide de "Traer al frente" la imagen, desde la barra de herramienta de diseño.

El primer formulario muestra 2 imágenes separadas, pero con fondos opacos. Luego, en el segundo, configuro el fondo transparente, y luego cubro una parte de la imagen para que pueda ver cómo queda. Puede obtener más información en este artículo traducido al español en este Blog en: BMPs con fondos transparentes.

Otra buena manera es usar PNGs, que soportan ALPHA (transparencias), pero lo más recomendado, y tiene mejor soporte en VFP, es el uso de BMPs, tal como aquí se muestra.

Actualización del 30 de Octubre de 2007

Bernard Bout recuerda que "tenga en cuenta que TODAS las áreas blancas de una imagen serán transparente. Por ejemplo, en la segunda imagen puesta por Cesar, el fondo del formulario es visible a través de los ojos del hombre brasileño. Si esto no es lo que quiere, entonces usted debe "enmascarar" las partes blancas del mapa de bits que desea que NO SEA TRANSPARENTE. Simplemente abra la imagen y pinte las partes blancas que se quiere mantener de NEGRO. La imagen debe ser del mismo tamaño. Pinte todas las otras partes de blanco y guardarlo como un BMP pero con una extensión .MSK. VFP automáticamente usará este archivo para "enmascarar" las zonas de blancas que serán transparentes".

Para este caso, yo por lo general edito la imagen, y cambio el RGB "blanco" puro -RGB(255,255,255)- que quiero mantener, cerca de otro blanco, como RGB(254,254,254). Nadie se dará cuenta de la diferencia y funciona muy bien, con la ventaja de no tener que crear un archivo de imagen adicional.

De todos modos, si prefiere crear una máscara, elija para crear un formato de imagen de 1bpp MONOCHROMÁTICO. Por lo general la gente guarda en el formato "24bits". Pero como las imágenes .MSK son unicamente en blanco & negro, monocromático, tienen un tamaño de archivo más pequeño. Comparando una imagen monocromática, la imágen de 24bpp será 24 veces mayor en tamaño.

En MSPaint, por ejemplo, elija, "Guardar como..."

Otras notas importantes sobre archivos MSK

En la Ayuda para PictureVal:

"Ud. no puede especificar un archivo de máscara (MSK) con la propiedad PictureVal. Si Ud. está utilizando imágenes BMP y quiere una máscara, Ud. debe usar la propiedad Picture. Ud. también puede utilizar un formato diferente de imagen, como un GIF, que tiene definida la transparencia dentro de la imagen."

How to: Enhance Control Display: Una buena explicación (en inglés) acerca de los archivos .MSK.