Conversion d'un System.Drawing.Bitmap en une BitmapImage WPF
Cet article explique comment intégrer de manière transparente des images de System.Drawing (souvent utilisées dans les applications Windows Forms) dans une application WPF. La clé consiste à convertir un objet System.Drawing.Bitmap en System.Windows.Media.Imaging.BitmapImage.
La solution : utiliser MemoryStream
La méthode la plus efficace utilise un MemoryStream
comme intermédiaire pour transférer les données de l'image.
Exemple de code :
<code class="language-csharp">using (MemoryStream memory = new MemoryStream()) { bitmap.Save(memory, ImageFormat.Png); // Save as PNG for broad compatibility memory.Position = 0; // Reset stream position BitmapImage bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.StreamSource = memory; bitmapImage.CacheOption = BitmapCacheOption.OnLoad; // Optimize caching bitmapImage.EndInit(); }</code>
Détail étape par étape :
MemoryStream
agit comme un stockage temporaire pour les données d'image.System.Drawing.Bitmap
(appelé bitmap
) est enregistré dans le MemoryStream
en utilisant le format ImageFormat.Png
. PNG est un format largement pris en charge, garantissant la compatibilité.memory.Position = 0;
réinitialise la position du flux au début, le préparant à la lecture par le BitmapImage
.BitmapImage
est créé pour contenir l'image compatible WPF.bitmapImage.BeginInit();
démarre le processus d'initialisation.MemoryStream
est attribué comme StreamSource
pour le BitmapImage
.BitmapCacheOption.OnLoad
optimise la mise en cache et améliore les performances.bitmapImage.EndInit();
termine l'initialisation, rendant le bitmapImage
prêt à être utilisé dans votre application WPF.Ce processus garantit une conversion fluide, vous permettant d'afficher facilement les bitmaps System.Drawing dans votre environnement WPF.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!