La conversion d’une image en bitmap devient un fond noir

J’ai besoin de convertir une image en bitmap.

Initialement, un gif était lu sous forme d’octets puis converti en une image.

Mais lorsque j’essaie de convertir l’image en bitmap, le graphique affiché dans ma boîte d’image a un arrière-plan noir alors qu’il était blanc.

Voici le code:

var image = (System.Drawing.Image)value; // Winforms Image we want to get the WPF Image from... var bitmap = new System.Windows.Media.Imaging.BitmapImage(); bitmap.BeginInit(); MemoryStream memoryStream = new MemoryStream(); // Save to a memory stream... image.Save(memoryStream, ImageFormat.Bmp); // Rewind the stream... memoryStream.Seek(0, System.IO.SeekOrigin.Begin); bitmap.StreamSource = memoryStream; bitmap.EndInit(); return bitmap; 

Quelqu’un peut-il expliquer pourquoi le fond devient noir et comment je peux l’arrêter?

Merci

Ne pas enregistrer en tant que fichier bitmap. Le format de fichier ne supporte pas la transparence, donc l’image sera sauvegardée sans transparence.

Vous pouvez utiliser le format de fichier PNG à la place. Cela préservera la transparence.

Si vous en avez vraiment besoin pour utiliser le format de fichier bitmap, vous devez d’abord le rendre non transparent. Créez un nouveau bitmap avec la même taille, utilisez la méthode Graphics.FromImage pour obtenir un object graphique à dessiner sur l’image, utilisez la méthode Clear pour le remplir avec la couleur d’arrière-plan souhaitée, utilisez la méthode DrawImage pour dessiner votre image. haut de l’arrière-plan, puis enregistrez cette image bitmap.