//---------------------------------------------------------------------------- // Copyright (C) 2004-2015 by EMGU Corporation. All rights reserved. //---------------------------------------------------------------------------- using System; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using Emgu.CV; namespace Emgu.CV.WPF { public static class BitmapSourceConvert { /// /// Delete a GDI object /// /// The poniter to the GDI object to be deleted /// [DllImport("gdi32")] private static extern int DeleteObject(IntPtr o); /// /// Convert an IImage to a WPF BitmapSource. The result can be used in the Set Property of Image.Source /// /// The Emgu CV Image /// The equivalent BitmapSource public static BitmapSource ToBitmapSource(IImage image) { using (System.Drawing.Bitmap source = image.Bitmap) { IntPtr ptr = source.GetHbitmap(); //obtain the Hbitmap BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( ptr, IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); DeleteObject(ptr); //release the HBitmap return bs; } } } }