2011-10-20 2 views
1

Je sais comment rendre un contrôle d'image transparent en C#, mais y a-t-il un moyen de rendre l'image (le fichier .jpeg, pas le contrôle d'image) transparente? Ou, y a-t-il un moyen, lorsque je rends le contrôle de l'image transparent, de créer une nouvelle image, de l'enregistrer dans un chemin et de lui donner le contenu de l'autre contrôle d'image?Comment rendre mon image transparente?

Répondre

1

Vous pouvez définir la propriété Opacité-Propriété de la commande Image pour l'afficher avec transparence. Mais pour obtenir un fichier image avec transparence, vous devrez le rendre dans un nouveau fichier.

Voici un exemple de comment vous pouvez le faire.

Image image = new Image(); //or however you get this 
image.Opacity = 0.5; 
RenderTargetBitmap bmp = new RenderTargetBitmap(image.Source.Width, image.Source.Height, 96, 96, PixelFormats.Pbgra32); 
bmp.Render(image); 

PngBitmapEncoder png = new PngBitmapEncoder(); 
png.Frames.Add(BitmapFrame.Create(bmp)); 
using (Stream fs= File.Create("test.png")) 
{ 
png.Save(fs); 
} 
4

Le fichier JPEG ne peut pas être transparent. Cependant, si vous l'enregistrez comme une image PNG, il aura un canal de transparence. GIFS prend également en charge la transparence, mais uniquement complètement opaque ou complètement transparent. Rien entre les deux.

PNG est votre meilleur pari ici IMO.

+0

Ok, savez-vous comment faire une image, et non un contrôle d'image transparent? –

+0

Que utilisez-vous? WinForms? WPF? –

+0

J'utilise WPF .. –

0

Il existe une propriété de transparence de la couleur. C'est ce dont vous avez besoin si vous voulez afficher l'image sur le contrôle.

+0

Ok, savez-vous comment faire une image, et non un contrôle d'image transparent? –

Questions connexes