У меня проблема. Я хочу преобразовать BitmapImage в массив byte[] и обратно.
Я написал эти методы:
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;
}
Первый работает нормально, но когда я пытаюсь преобразовать из byte[] в BitmapImage, я получаю NotSupportedException... Почему? Как исправить код 2-го способа?
BitmapImageдолжно быть действительным, потому что я отображаю его в своей форме:/ Не знаю, в чем проблема... - person Nickon   schedule 13.01.2013