IntroductionI am doing an application (which I am converting Windows forms 2.0 application into WPF application for rich look) in WPF and I am need of the load the Image from an instance of a System.Drawing.Bitmap. Initially I was struggled to do this. After a few minutes of search in goggle, I found the following solution. With help of Imaging class, we can create a BitmapSource and assign the BitmapSource value to the Image. The following code will help you to do this. CodeSnippetpublic static BitmapSource ToBitmapSource(this System.Drawing.Bitmap source)
{
BitmapSource bitmapSrc = null;
var hBitmap = source.GetHbitmap();try{
bitmapSrc = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
hBitmap,
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions());
}catch (Win32Exception)
{
bitmapSrc = null;
}finally{
NativeMethods.DeleteObject(hBitmap);
}return bitmapSrc;
}internal static class NativeMethods
{
[DllImport("gdi32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]internal static extern bool DeleteObject(IntPtr hObject);
} I hope this snippet to help to you all. |