我正在使用Xamarin.Forms,所以当我试图从Gallery中选择照片时(我使用https://components.xamarin.com/view/mediaplugin处理照片),我需要获得图片的byte[]
才能在web服务上使用,我该怎么做。
检查我的代码如下:
ChoosePhotoButton.Clicked += async (sender, args) =>
{
if (!CrossMedia.Current.IsPickPhotoSupported)
{
DisplayAlert("Photos Not Supported", ":( Permission not granted to photos.", "OK");
return;
}
var file = await CrossMedia.Current.PickPhotoAsync();
if (file == null)
return;
image.Source = ImageSource.FromStream(() =>
{
var stream = file.GetStream();
file.Dispose();
return stream;
});
OptionalInfoPage.DriverImage = image;
};
如果您的代码返回有效的流,我认为您做得很好!只是试着添加这个而不是返回流,
byte[] ImageBytes = stream.ToArray();
return ImageBytes;
我使用file.GetStream().CopyTo(memoryStream)
直接从文件中获取它,检查以下代码:
using (var memoryStream = new System.IO.MemoryStream())
{
file.GetStream().CopyTo(memoryStream);
// file.Dispose();
byte[] ImageBytes = memoryStream.ToArray();
}