2010-06-24 14 views
9

¿Hay alguna forma de mostrar correctamente una imagen con canal alfa (digamos PNG) en la aplicación C#? Gracias por cualquier sugerencia.Mostrar PNG con canal alfa en C#

ACTUALIZACIÓN:

bien, mi pregunta era un poco impreciso. Me gustaría adquirir transparencia real de canal alfa, sin llenar con el color de fondo de los padres. En la imagen a continuación podemos ver que la transparencia es compatible, pero la parte del botón que se encuentra debajo de la imagen no está visible. ¿Es posible tener una transparencia real del canal alfa de una imagen?

image presenting not-total transparency http://img684.imageshack.us/img684/8804/transpt.jpg

+4

¿Qué tipo de aplicación? winform? wpf? html/ASP.NET? html/ASP.NET MVC? Silverlight? xna? teléfono 7? Windows Mobile? iPhone? reloj de pulsera (micro-marco)? gtk # (mono)? –

+2

¿Qué aspecto tiene "mostrar incorrectamente"? –

+0

@Marc Gravell - es una aplicación estándar de formularios de Windows C# @Hans Passant - buena sugerencia - vea ACTUALIZACIÓN – rafalry

Respuesta

3

Sí, System.Drawing.Image.FromFile ("filename.png"); .NET Framework admite transparencia para múltiples tipos de archivos, no creo que funcione con JPEG, pero PNG debería estar bien.

6

Si ese es winforms entonces no. "transparencia" en winforms no es transparencia real.

Lo que puede hacer es crear una forma alphatransparent que dibuja el PNG y la posición en la ubicación correcta y movimiento se unen etc. alt text http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx

PerPixelAlphaForm transparentImageForm = new PerPixelAlphaForm(); 
transparentImageForm.SetBitmap(<IMAGE GOES HERE>,<OPACITY GOES HERE>); 

// La opacidad es la opacidad que la imagen se dibujará con un valor de 255 = todas las partes transparentes serán alfa/transparentes tanto como el PNG original, etc.

EDITAR: O IR A WPF.

Cuestiones relacionadas