BitmapImage to byte[]
Solution 1:
To convert to a byte[] you can use a MemoryStream:
byte[] data;
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmapImage));
using(MemoryStream ms = new MemoryStream())
{
encoder.Save(ms);
data = ms.ToArray();
}
Instead of the JpegBitmapEncoder you can use whatever BitmapEncoder you like as casperOne said.
If you are using MS SQL you could also use a image
-Column as MS SQL supports that datatype, but you still would need to convert the BitmapImage somehow.
Solution 2:
You will have to use an instance of a class that derives from BitmapEncoder
(such as BmpBitmapEncoder
) and call the Save
method to save the BitmapSource
to a Stream
.
You would choose the specific encoder depending on the format you want to save the image in.