Does anyone know how to create a BitmapImage from an Image? Here is the code that I'm working with:
MemoryStream memStream = new MemoryStream(bytes);
Image img = Image.FromStream(memStream);
Now I have access to this image in memory. The thing is I need to convert this to type BitmapImage in order to use it in my solution.
NOTE: I need to convert it to type BitmapImage not type Bitmap. I haven't been able to figure it out because type BitmapImage takes in a Uri for it's constructor.
Bitmap img = (Bitmap) Image.FromStream(memStream);
BitmapImage bmImg = new BitmapImage();
using (MemoryStream memStream2 = new MemoryStream())
{
img.Save(memStream2, System.Drawing.Imaging.ImageFormat.Png);
memStream2.Position = 0;
bmImg.BeginInit();
bmImg.CacheOption = BitmapCacheOption.OnLoad;
bmImg.UriSource = null;
bmImg.StreamSource = memStream2;
bmImg.EndInit();
}
From this post
public BitmapImage ImageFromBuffer(Byte[] bytes)
{
MemoryStream stream = new MemoryStream(bytes);
BitmapImage image = new BitmapImage();
image.BeginInit();
image.StreamSource = stream;
image.EndInit();
return image;
}
Are you sure you need BitmapImage, not BitmapSource? BitmapImage is a subclass of BitmapSource specifically for making a source in XAML (from a URI). There are many other BitmapSource choices -- one of the other choices might be better.
For example, WriteableBitmap
http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap.aspx
You can make one of the size you want, and then copy pixels over to it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With