Como converter o ImageSource em byte [] e voltar ao ImageSourc
Preciso ter o caminho do arquivo de imagem do usuário e armazenar a imagem no banco de dados do servidor sq
Peguei o arquivo do usuário e convertei para byte [] usando o método
public static byte[] ImageToByteArray( BitmapSource bitmapSource )
{
byte[] imgAsByteArray = null;
if( bitmapSource != null )
{
imgAsByteArray = ( new WriteableBitmap( ( BitmapSource )bitmapSource ) ).Pixels.SelectMany( p => new byte[]
{
( byte ) p ,
( byte )( p >> 8 ),
( byte )( p >> 16 ),
( byte )( p >> 24 )
} ).ToArray();
}
return imgAsByteArray;
}
mas agora não consigo convertê-lo novamente em BitmapSource. O código que escrevi para convertê-lo de volta gera uma exceção
O código
public static BitmapSourcebyteArrayToImage( byte[] imageBytes )
{
BitmapImage bitmapImage = null;
using( MemoryStream ms = new MemoryStream( imageBytes, 0, imageBytes.Length ) )
{
bitmapImage = new BitmapImage();
bitmapImage.SetSource( ms );
}
return (BitmapSource)bitmapImage;
}
Eu recebo a exceção na linha bitmapImage.SetSource (ms);
As informações de exceção são 'falha catastrópica'