C# Xamarin表单显示图像问题
我使用一个照片选择器让用户选择一个个人资料图片,然后我想显示一个图像视图内的图片。下面的代码对我来说很好,但是我想将图像转换为字节数组,一旦我调用方法进行转换,图像在用户拾取后不会显示。我还尝试调用了try-and-catch之外的方法,但没有成功。 图像被选中(保存在本地存储中),因此唯一的问题是由于某种原因,它没有在视图中显示C# Xamarin表单显示图像问题,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我使用一个照片选择器让用户选择一个个人资料图片,然后我想显示一个图像视图内的图片。下面的代码对我来说很好,但是我想将图像转换为字节数组,一旦我调用方法进行转换,图像在用户拾取后不会显示。我还尝试调用了try-and-catch之外的方法,但没有成功。 图像被选中(保存在本地存储中),因此唯一的问题是由于某种原因,它没有在视图中显示 async void showMediaPicker() { var res = await MediaP
async void showMediaPicker()
{
var res = await MediaPicker.PickPhotoAsync();
try
{
var stream = await res.OpenReadAsync();
var finalImage = ImageSource.FromStream(() => stream);
myImage.Source = finalImage;
imgBytes = ImageSourceToBytes(finalImage);
}
catch (Exception e)
{
Console.Write("error" + e.Message) ;
}
}
如果要将照片转换为字节数组,可以使用Nuget的插件拾取或拍照。别忘了在android和iOS平台上添加相关权限
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
DisplayAlert("No Camera", ":( No camera available.", "OK");
return;
}
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
SaveToAlbum = true,
Name = "test.jpg"
});
if (file == null)
return;
然后首先将其转换为流,然后再将其转换为字节数组
Stream stream = file.GetStream();
现在可以得到如下所示的字节数组
var imgDate = GetImageStreamAsBytes(stream);
但是函数关闭流,然后它不会在UI中显示图像。在转换之前显示它。是的,我就是这么做的。。。看看问题中的代码你使用插件了吗?我使用了mediaPicker
var imgDate = GetImageStreamAsBytes(stream);