I have a problem. I want to convert BitmapImage into byte[] array and back.
I wrote these methods:
public static byte[] ToByteArray(this BitmapImage bitmapImage) { byte[] bytes; using (MemoryStream ms = new MemoryStream()) { bitmapImage.BeginInit(); bitmapImage.CacheOption = BitmapCacheOption.OnLoad; bitmapImage.StreamSource.CopyTo(ms); bitmapImage.EndInit(); bytes = ms.ToArray(); } return bytes; } public static BitmapImage ToBitmapImage(this byte[] bytes, int width, int height) { BitmapImage bitmapImage = new BitmapImage(); using (MemoryStream ms = new MemoryStream(bytes)) { ms.Position = 0; bitmapImage.BeginInit(); bitmapImage.CacheOption = BitmapCacheOption.OnLoad; bitmapImage.StreamSource = ms; bitmapImage.EndInit(); // HERE'S AN EXCEPTION!!! } return bitmapImage; } First one works fine, but when I try to convert from byte[] into BitmapImage I got a NotSupportedException... Why? How to correct the code of the 2nd method?
BitmapImageshould be valid, because I display it in my form:/ Don't know where the problem is...