WPF - Bitmap to BitmapImage
Il est souvent très difficile de s'y retrouver dans les gestions d'images entre .Net2.0 et .Net3.0 (WPF).
Voilà donc deux méthodes très simples permettant de : - Créer un BitmapImage à partir d'un fichier image, - Créer un BitmapSource à partir d'un Bitmap.
1/ BitmapImage à partir d'une Image
|
using System; using System.Collections.Generic; using System.Windows.Media.Imaging;
...
public static BitmapImage getBitmapImage(String pathImage) { try { System.IO.FileStream fs = System.IO.File.Open(pathImage, System.IO.FileMode.Open); byte[] buffer = new byte[Convert.ToInt32(fs.Length)]; fs.Read(buffer, 0, Convert.ToInt32(fs.Length)); System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer); BitmapImage image = new BitmapImage(); image.BeginInit(); image.StreamSource = ms; image.EndInit(); image.Freeze();
fs.Close(); fs.Dispose(); return image; } catch (Exception) { return new BitmapImage(); } }
...
|
Il est également trè simple de passer d'un Bitmap à un BitmapImage, puisque celui ci possède un attribut source (BitmapSource) qu'il suffit de remplir.
La méthode suivante génère un BitmapSource à partir d'un Bitmap qu'il suffit d'attribuer au source d'un BitmapImage.
2/ BitmapImage à partir d'un Bitmap
|
using System; using System.Collections.Generic; using System.Windows.Media.Imaging;
...
public static BitmapSource loadBitmap(System.Drawing.Bitmap source) { return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( source.GetHbitmap(), IntPtr.Zero, System.Windows.Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions() ); }
...
|
|
|
Mise à jour le Vendredi, 21 Août 2009 09:03 |