La Web del Programador: Comunidad de Programadores
 
    Pregunta:  5014 - MASCARAS EN PICTURESBOX
Autor:  Pablo Grabarnik
Por mas que leo informacion y veo ejemplos no logro entender como se puede hacer una imagen transparente en VB. Tengo el Picturebox con la imagen(Picture1),y el otro picturebox con la mascara de la imagen(Picture2). Pero no se como juntarlas para que las partes en blanco de la mascara, sean transparentes. Por favor, si alguien puede ayudarme con esto, se lo agradeceré.
Otro tema que tampoco entiendo es cómo hacer animaciones, no entiendo nada sobre los sprites, pero eso no es tan urgente. Si alguno me puede ayudar con las dos cosas, mucho mejor, sino, lo que me urge ahora son las transparencias.
Muchas gracias
Pablo

  Respuesta:  Miguel Lucero
Pablo, te mando un pequeno ejemplo sobre animación en VB por medio de mascaras. El ejemplo es un objeto que hicimos con mi hermano Julio para la empresa donde el trabaja pero a vos te puede servir como pie para otras aplicaciones.

Espero te sirva

resp5014.zip

  Respuesta:  J.M. Lopez
Bueno, esa solución que tu propones es algo complicada. Te propongo que crees un GIF con el fondo transparente y lo cargues en un control Image (no PictureBox). Con eso tendrás el fondo transparente.

Si lo que quieres son animaciones, no tienes mas que tener todos los frames de la animación con el MISMO tamaño y el MISMO color de fondo (para la transparencia) en un control ImageList, y despues con un timer ir llamando a la funcion Draw del ImageList sobre el hDC de un PictureBox con el frame que quieras, ahi va un ejemplo:

Private Sub tmrAnim_Timer()

picAnimFinal.Refresh ´ Para que salga bien
imlListaFrames.ListImages(intFrame).Draw picAnimFinal.hDC, 1, 1, imlTransparent

End Sub

Espero que esto haya resuelto tu duda, si no te queda claro hazmelo saber.