Convertir System.Drawing.Bitmap en WPF BitmapImage
La conversion d'un System.Drawing.Bitmap existant en WPF BitmapImage nécessite un format compatible pour que l'application WPF affiche correctement l'image. Une méthode efficace consiste à convertir le Bitmap en MemoryStream, puis à utiliser les méthodes BeginInit() et EndInit() de BitmapImage. Voici des instructions détaillées pour y parvenir :
Tout d'abord, créez une instance MemoryStream et enregistrez-y le System.Drawing.Bitmap en utilisant l'ImageFormat approprié. Dans cet exemple nous utiliserons PNG :
<code class="language-csharp">using(MemoryStream memory = new MemoryStream()) { bitmap.Save(memory, ImageFormat.Png);</code>
Ensuite, réinitialisez la position du MemoryStream au début du flux pour vous assurer que BitmapImage peut lire les données de l'image :
<code class="language-csharp"> memory.Position = 0;</code>
Maintenant, créez une nouvelle instance BitmapImage et appelez sa méthode BeginInit(). Cette méthode initialise BitmapImage et le prépare au chargement des données d'image.
<code class="language-csharp"> BitmapImage bitmapImage = new BitmapImage(); bitmapImage.BeginInit();</code>
Définissez la propriété StreamSource de BitmapImage sur le flux mémoire créé précédemment. Cette propriété permet à BitmapImage de lire les données d'image du flux.
<code class="language-csharp"> bitmapImage.StreamSource = memory;</code>
Pour optimiser les performances, définissez CacheOption de BitmapImage sur BitmapCacheOption.OnLoad. Cette option met en cache les données d'image dans la mémoire après le chargement initial de l'image, améliorant ainsi les performances de récupération ultérieure.
<code class="language-csharp"> bitmapImage.CacheOption = BitmapCacheOption.OnLoad;</code>
Enfin, appelez la méthode EndInit() de BitmapImage pour terminer le processus de chargement. Cette méthode valide les données d'image et les rend disponibles pour l'affichage.
<code class="language-csharp"> bitmapImage.EndInit(); }</code>
En suivant ces étapes, vous pouvez convertir avec succès System.Drawing.Bitmap en System.Windows.Media.Imaging.BitmapImage qui peut être utilisé dans les applications 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!