2015-04-07 2 views
1

Хочет, чтобы преобразовать байты [], чтобы ImageSourceОшибка преобразования байт ImageSource

вот мой код обращенного в байтах

public object BufferFromImage(System.Windows.Media.ImageSource imageSource) 
    { 
     if (imageSource != null) 
     { 
      var image = (BitmapSource)imageSource; 
      BitmapEncoder encoder = new PngBitmapEncoder(); 
      encoder.Frames.Add(BitmapFrame.Create(image)); 
      using (var ms = new MemoryStream()) 
      { 
       encoder.Save(ms); 
       return ms.ToArray(); 
      } 
     } 
     else 
     { 
      return DBNull.Value; 
     } 
    } 

кода для байт [], чтобы ImageSource

public ImageSource ByteToImage(byte[] imageData) 
    { 
     BitmapImage biImg = new BitmapImage(); 
     MemoryStream ms = new MemoryStream(imageData); 
     biImg.BeginInit(); 
     biImg.StreamSource = ms; 
     biImg.EndInit(); 
     ImageSource imgSrc = biImg as ImageSource; 
     return imgSrc; 
    } 

Этих дает мне эту ошибку:

An unhandled exception of type 'System.NotSupportedException' occurred in PresentationCore.dll

Additional information: No imaging component suitable to complete this operation was found.

Что вызывает это и как я могу его исправить?

+1

[http://stackoverflow.com/ вопросы/22065815/как к обращенным байт-массив к ImageSource-для-окон-8-0-магазин-приложение] (http://stackoverflow.com/questions/22065815/how-to-convert-byte -array-to-imagesource-for-windows-8-0-store-application) – Eminem

+0

Используйте эту ссылку для загрузки файла http://www.aspsnippets.com/Articles/Save-Files-to-SQL-Server -Database-using-FileUpload-Control.aspx –

+0

http://stackoverflow.com/a/8901493/4513879 используйте эту ссылку также –

ответ

0

Похоже, вы можете сохранить его в MemoryStream затем преобразовать MemoryStream в байтах array.try этого

public byte[] imageToByteArray(System.Drawing.Image imageIn) 
{ 
MemoryStream ms = new MemoryStream(); 
imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif); 
return ms.ToArray 
} 

// второго

public byte[] imgToByteArray(Image img) 
{ 
     using (MemoryStream mStream = new MemoryStream()) 
     { 
      img.Save(mStream, img.RawFormat); 
      return mStream.ToArray(); 
     } 
} 
Смежные вопросы