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,否則內存會很快占滿。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM