Maison > développement back-end > C++ > Comment convertir un System.Drawing.Bitmap en une BitmapImage WPF ?

Comment convertir un System.Drawing.Bitmap en une BitmapImage WPF ?

Mary-Kate Olsen
Libérer: 2025-01-28 01:06:09
original
347 Les gens l'ont consulté

How to Convert a System.Drawing.Bitmap to a WPF BitmapImage?

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal