【发布时间】:2020-05-07 11:28:23
【问题描述】:
async void OnPickPhotoButtonClicked(object sender,EventArgs e)
{
(sender as Image).IsEnabled = false;
Stream stream = await DependencyService.Get<IPhotoPickerService>().GetImageStreamAsync();
if(stream != null)
{
temp_photo.Source = ImageSource.FromStream(() => stream);
}
(sender as Image).IsEnabled = true;
}
当我使用它选择图像时,它将在
中显示图库中的图像我需要做的是将图像转换为base64_string,以便可以将其发送到我们的服务器
我尝试按照此链接https://forums.xamarin.com/discussion/81344/how-to-convert-image-from-plugin-media-to-base64接受的答案进行操作
var stream = file.GetStream();
var bytes = new byte [stream.Length];
await stream.ReadAsync(bytes, 0, (int)stream.Length);
string base64 = System.Convert.ToBase64String(bytes);
采用我的方法看起来像这样
async void OnPickPhotoButtonClicked(object sender,EventArgs e)
{
(sender as Image).IsEnabled = false;
Stream stream = await DependencyService.Get<IPhotoPickerService>().GetImageStreamAsync();
if(stream != null)
{
temp_photo.Source = ImageSource.FromStream(() => stream);
var bytes = new byte[stream.Length];
await stream.ReadAsync(bytes, 0, (int)stream.Length);
string base64 = System.Convert.ToBase64String(bytes);
}
(sender as Image).IsEnabled = true;
}
但是在选择图像时,这会导致应用程序崩溃
如何将选中的图片转换成base64字符串?
作为参考,我正在安卓设备上进行测试
编辑:将我的方法包装在 try 块中以捕获异常,这就是它所说的
不支持指定的方法。
【问题讨论】:
-
对于任何崩溃,您需要做的第一件事是识别导致它的异常。在您这样做之前,我们无法帮助您。但是,我会注意到 XF 有一个媒体插件,它消除了使用 DependencyService 方法的需要
-
@Jason 更新帖子但有异常
-
是哪一行造成的?
-
现在可以用了吗?
标签: c# xamarin.forms