Get ImageSource from Bitmap?

10,146

Nevermind, I figured it out.

public static Brush CreateBrushFromBitmap(Bitmap bmp)
{
    return new ImageBrush(Imaging.CreateBitmapSourceFromHBitmap(bmp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()));
}

credit

Share:
10,146

Related videos on Youtube

mpen
Author by

mpen

Updated on June 04, 2022

Comments

  • mpen
    mpen almost 2 years

    I want to set a background image for my form/window like this guy but instead of an image file on disk I've got a System.Drawing.Bitmap in memory.

    I need to do something like this:

    this.Background = new ImageBrush(new BitmapImage(bmp));
    

    Except BitmapImage won't take a Bitmap, nor will ImageBrush and I'm not sure if any of the others will. There's one called BitmapCacheBrush but I don't know what that does.

  • Alan
    Alan over 9 years
    You'll need to import and P/Invoke DeleteObject on that handle from Bitmap.GetHBitmap() or you'll be leaking GDI handles. Refer to the documentation for more info.