WPF Bitmap轉imagesource

weixin_34127717發表於2018-08-30
原文:WPF Bitmap轉imagesource

因為WPF中不支援直接顯示bitmap格式圖片,因此需要對bitmap轉換成imagesource再顯示。

[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern bool DeleteObject(IntPtr hObject);

public static ImageSource ChangeBitmapToImageSource(Bitmap bitmap)
{
    IntPtr hBitmap = bitmap.GetHbitmap();
    ImageSource wpfBitmap = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(
        hBitmap,
        IntPtr.Zero,
        Int32Rect.Empty,
        BitmapSizeOptions.FromEmptyOptions());

    if (!DeleteObject(hBitmap))
    {
        throw new System.ComponentModel.Win32Exception();
    }
    return wpfBitmap;
}

需要及時釋放hBitmap,否則記憶體會很快佔滿。

相關文章