2010-06-24 4 views
9

C'è un modo per visualizzare correttamente un'immagine con canale alfa (diciamo PNG) nell'applicazione C#? Grazie per eventuali suggerimenti.Mostra PNG con canale alfa in C#

UPDATE:

OK, la mia domanda era un po 'impreciso. Mi piacerebbe acquisire una vera trasparenza del canale alfa - non riempire con il colore di sfondo del genitore. Nell'immagine qui sotto possiamo vedere che la trasparenza è supportata, ma la parte del pulsante che si trova sotto l'immagine non è visibile. È possibile avere una vera trasparenza del canale alfa di un'immagine?

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

+4

Che tipo di applicazione? WinForm? WPF? html/ASP.NET? html/ASP.NET MVC? silverlight? XNA? telefono 7? Windows Mobile? i phone? orologio da polso (micro-quadro)? gtk # (mono)? –

+2

Che aspetto ha "impropriamente visualizzato"? –

+0

@Marc Gravell - è un'applicazione di moduli Windows C# standard @Hans Passant - buon suggerimento - vedere AGGIORNAMENTO – rafalry

risposta

3

Sì, System.Drawing.Image.FromFile ("filename.png"); .NET framework supporta la trasparenza per più tipi di file, non penso che abbia funzionato con JPEG, ma PNG dovrebbe andare bene.

6

Se questo è WinForms allora no. "trasparenza" in winforms non è una vera trasparenza.

Che cosa si può fare è quello di creare un modulo alphatransparent che disegna il PNG e posizionarlo nella posizione corretta e la mossa si legano ecc alt text http://www.codeproject.com/KB/GDI-plus/perpxalpha_sharp.aspx

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

// opacità è l'opacità che l'immagine verrà disegnato con, un valore di 255 = tutte le parti trasparenti saranno alfa/trasparente tanto quanto il PNG originale ecc.

MODIFICA: O VAI A WPF.