Convert A Byte[] Array to Image in Xamarin Forms Convert A Byte[] Array to Image in Xamarin Forms arrays arrays

Convert A Byte[] Array to Image in Xamarin Forms


(XAML):

 <Image Grid.Row="1" x:Name="IncidentImageData" Grid.ColumnSpan="4" BackgroundColor="DarkGray" Aspect="AspectFill" WidthRequest="50" HeightRequest="175"/> 

viewModel.SImageBase64 is a byte[]

Code Behind(C#):

var stream1 = new MemoryStream(viewModel.SImageBase64);IncidentImageData.Source = ImageSource.FromStream(() => stream1);

simply i have done like this and image has shown.


A Potential Fix

I know this thread is 2 years old now but I thought i'd post a working solution here for anyone who's also struggling with this. Just spent half a day researching and trying to solve an identical problem, the way the code was written on this post helped me greatly as it is almost 100% correct. You just need to provide the MemoryStream as a return from a lambda function within the FromStream() method.

Change this:

PdfImage.Source = ImageSource.FromStream(() => new MemoryStream(imageAsBytes));

To:

PdfImage.Source = ImageSource.FromStream(() =>{     return new MemoryStream(imageAsBytes);});

And the snippet should be working as of Xamarin Forms 5.0.0.2012

Full Code:

byte[] imageAsBytes = Constant.jsonPDF;var stream1 = new MemoryStream(imageAsBytes);PdfImage.Source = ImageSource.FromStream(() =>{     return new MemoryStream(imageAsBytes);});imagePanel.Children.Add(PdfImage);


Use this Code :

imgUserImage.Source = ImageSource.FromStream(() => new MemoryStream(userList.Single().ProfilePhoto));

Here profile photo type is byte[]

public byte[] ProfilePhoto { get; set; }