CSharp examples for System.Windows.Media.Imaging:BitmapSource
Convert an IImage to a WPF BitmapSource. The result can be used in the Set Property of Image.Source
using System.Windows.Media; using System.Drawing; using System.Windows.Media.Imaging; using System;//from w w w . j a v a2 s. c o m public class Main{ public static BitmapSource ToBitmapSource(byte[] bytes, int width, int height, int dpiX, int dpiY) { var result = BitmapSource.Create( width, height, dpiX, dpiY, PixelFormats.Bgra32, null /* palette */, bytes, width * 4 /* stride */); result.Freeze(); return result; } /// <summary> /// Convert an IImage to a WPF BitmapSource. The result can be used in the Set Property of Image.Source /// </summary> /// <param name="bitmap">The Source Bitmap</param> /// <returns>The equivalent BitmapSource</returns> public static BitmapSource ToBitmapSource(System.Drawing.Bitmap bitmap) { if (bitmap == null) return null; using (System.Drawing.Bitmap source = (System.Drawing.Bitmap)bitmap.Clone()) { IntPtr ptr = source.GetHbitmap(); //obtain the Hbitmap BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( ptr, IntPtr.Zero, System.Windows.Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); NativeMethods.DeleteObject(ptr); //release the HBitmap bs.Freeze(); return bs; } } public static BitmapSource ToBitmapSource(Image image) { return ToBitmapSource(image as Bitmap); } }