2016-12-06 228 views
1

在问这个问题之前,我搜索了很多,但找不到适合我的解决方案。在Xamarin表单中将字节[]数组转换为图像

Xamarin.Forms我有一个byte[]数组,我想将该byte []数组转换为Image。我怎样才能做到这一点,这是我的尝试:

在前端(XAML):

<StackLayout BackgroundColor="Olive" x:Name="imagePanel"> 
    <Image x:Name="PdfImage" Aspect="AspectFill" IsVisible="true"/> 
</StackLayout>  

在代码隐藏(C#):

byte[] imageAsBytes = Constant.jsonPDF; 

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

imagePanel.Children.Add(PdfImage); 

但我问题是图像不显示。

有人可以告诉我我做错了什么。任何帮助将不胜感激。

由于

+0

是字节[]一个JPG或PNG? – Jason

+0

实际上,我不知道......'Constant.jsonPdf'包含值并且来自服务器。当我调试时,我只能看到'byte [694753]'。 –

+0

您应该验证 - 将其写入磁盘,然后使用图像查看器查看,或使用curl或浏览器将其下载到桌面。如果它不是一个有效的图像类型它不会显示在图像控制 – Jason

回答

0

(XAML):

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

viewModel.SImageBase64是一个字节[]

代码隐藏(C#):

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

简单地我有像这样做,图像显示。