2010-06-24 8 views
9

Existe-t-il un moyen d'afficher correctement une image avec un canal alpha (disons PNG) dans une application C#? Merci pour vos suggestions.Afficher le PNG avec canal alpha en C#

MISE À JOUR:

OK, ma question était un peu imprécis. Je voudrais acquérir une transparence réelle de la couche alpha - ne pas remplir avec la couleur de fond du parent. Dans l'image ci-dessous, nous pouvons voir que la transparence est supportée, mais la partie du bouton qui se trouve sous l'image n'est pas visible. Est-il possible d'avoir une vraie transparence du canal alpha d'une image?

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

+4

Quel type d'application? winform? wpf? html/ASP.NET? html/ASP.NET MVC? Silverlight? xna? téléphone 7? Windows Mobile? iPhone? montre-bracelet (micro-cadre)? gtk # (mono)? –

+2

À quoi ressemble un "affichage incorrect"? –

+0

@Marc Gravell - c'est une application de formulaires Windows standard C# @Hans Passant - bon indice - voir MISE À JOUR – rafalry

Répondre

3

Oui, System.Drawing.Image.FromFile ("filename.png"); .NET Framework prend en charge la transparence pour plusieurs types de fichiers, je ne pense pas que cela fonctionne avec JPEG, mais PNG devrait être bon.

6

Si tel est WinForms alors non. "transparence" dans winforms n'est pas la vraie transparence.

Ce que vous pouvez faire est de créer une forme de alphatransparent qui tire le PNG et le positionner au bon endroit et se déplacer bind 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>); 

// opacité est l'opacité que l'image sera tiré avec, une valeur de 255 = toutes les parties transparentes seront alpha/transparent tout autant que le PNG d'origine, etc.

EDIT: OU PASSEZ À WPF.

Questions connexes