PictureBox VB.NET [Tranparencia Imagen]

Iniciado por MicroHack, 10 Febrero 2011, 18:24 PM

0 Miembros y 1 Visitante están viendo este tema.

MicroHack

Actualmente tengo un control PictureBox dentro de un Form con una imagen (PNG).

El problema es que esa imagen tiene transparencia pero al cargarla en el picturebox el control rellena esa transparencia con un color solido gris y de esta forma me tapa ese fondo que tiene debajo el control.

He probado con imagenes GIF tambien, he modificado la propiedad Background Color en Transparent y Backround Image en "none" pero fail.

En principio no era una prioridad solucionarlo pero he llegado en la parte del proyecto donde me va hacer falta mas de un control picturebox y voy a hacer un copy&paste, asi que prefiero tenerlo resuelto antes que luego tener que modificar los 70 controles.

Alguien sabe como se hace?


EDIT: Acabo de descubrir esto:

[youtube=425,350]http://www.youtube.com/watch?v=RgAxaZEH-cI&feature=player_embedded[/youtube]


Dice que la tranparencia de una imagen PNG dentro de Windows Form es "falsa" puesto que solo tiene en cuenta la capa de imagen del formulario, no de la imagen que tiene entremedia, por ejemplo la imagen que pone en el video como ejemplo donde se ve claramente que no es tomada en cuenta.

¿Alguna solucion a ello?
Hola cariño, pasa por favor, y cierra la puerta al entrar. No quiero que se oigan los disparos fuera.

seba123neo

Hola, si es un pequeño problemita jeje, pero una de las soluciones que vi por ahi y funciono, es esta:

Código (vbnet) [Seleccionar]
    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)
        For Each MyObject As PictureBox In Me.Controls.OfType(Of PictureBox)()
            If Not IsNothing(MyObject.Image) And MyObject.Visible = True Then
                e.Graphics.DrawImageUnscaled(New Bitmap(MyObject.Image), MyObject.Left, MyObject.Top)
            End If
        Next
    End Sub


saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

sentinel13

hola mira para hacer transparencias es muy facil y se hace asi

1. Le pones un color  a la propiedad backcolor del form digamos negro

2. Le pones el mismo color de la propiedad backcolor a la propiedad transparencykey

3. cargas un picturebox
4. le asignas la imagen en formato png que tu quieras, solo que ten cuidado con los colores ya que si los colores son  iguales o similares a la imagen estos tambien se haran invisible ya que la propiedad transparencykey es hacer invisibles todos los sectores que coinciden con el color seleccionado a hacer transparante.

5. listo ya esta....

NOTA:
Tambien podes omitir insertar un picturebox y cargarselo directamente al form en la propiedad: backgroundimage

cualquier duda escribeme al: deskpdesk4862@hotmail.com

por si no lo entendiste o tienes dudas, con gusto te explico, que ahorita ando corto de tiempo