mpen
mpen

Reputation: 282805

Get ImageSource from Bitmap?

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.

Upvotes: 14

Views: 10282

Answers (1)

mpen
mpen

Reputation: 282805

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

Upvotes: 18

Related Questions