2008-09-03 7 views
4

Est-il possible d'utiliser ce type de format dans .Net (C#)? Je souhaite utiliser le même format de peau qu'uTorrent utilise dans mon application, mais je ne parviens pas à obtenir l'arrière-plan transparent. Des idées? Merci pour votre temps.Comment utiliser BMP 32 bits alpha-blended dans .Net

Répondre

2

L'énumération PixelFormat répertorie les formats de 'bitmaps', vous pouvez créer en .Net, donc vous voudriez PixelFormat.Format32bppArgb:

http://msdn.microsoft.com/en-us/library/system.drawing.imaging.pixelformat.aspx

http://msdn.microsoft.com/en-us/library/3z132tat.aspx

Cependant, je ne suis pas tout à fait Assurez-vous que le format de fichier BMP prend en charge la transparence. Vous devrez donc enregistrer le fichier en tant que fichier PNG.

+0

sam est correct. BMP ne prend pas en charge un canal alpha. La transparence dans les bitmaps est généralement effectuée de manière chroma-key (sélectionnez une couleur pour qu'elle soit transparente à 100%). PNG sera le choix optimal ici. –

3

Vous devez faire deux choses:

  • Copiez votre bitmap sur le formulaire en arrière-plan.
  • Appelez le UpdateLayeredWindow (user32.dll) pour activer la transparence alpha par pixel.

Le code est un peu encombrant liitle, mais voici un exemple d'application très agréable avec le code source: Per Pixel Alpha Blend in C#

+0

merci, je vais essayer –

2

Bien que le format BMP prend en charge un canal alpha, Windows ignore. Heureusement, le format est plutôt simple et vous pouvez le lire en utilisant System.IO.BinaryReader puis créer un Drawing.Bitmap en utilisant les méthodes LockBits et UnlockBits pour y écrire les données.

Questions connexes