这可能是一个简单的问题,但我无法让它发挥作用。 我使用 TakePhotoAsync() 从相机设置图片没有问题。
问题是我将图片上传到 BlobStorage,并且我想从 blob Byte 数组中获取 Plugin.Media.Abstractions.MediaFile。 像这样的东西:
MediaFile file = new MediaFile(...);
有人知道怎么做吗?
提前致谢
编辑:根据答案,我的问题似乎不够清楚。 我可以拍照并将其上传到 Blob 存储。
这与我想做的相反,但不知道如何做。 我想从 Blob 存储中下载图片(以字节数组形式获取),然后从中获取 MediaFile。
最佳答案
首先,您需要使用以下代码拍摄图像:
EventImageFile = await CrossMedia.Current.TakePhotoAsync(
new StoreCameraMediaOptions
{
SaveToAlbum = true,
Directory = "your directory name",
Name = DateTime.Now + ".jpg",
DefaultCamera = CameraDevice.Rear,
//CompressionQuality = 10
});
然后你可以使用这段代码将其转换为 byte[]:
private byte[] ConvertMediaFileToByteArray(MediaFile file)
{
using (var memoryStream = new MemoryStream())
{
file.GetStream().CopyTo(memoryStream);
return memoryStream.ToArray();
}
}
并将你的 byte[] 发布到 blob 存储
关于c# - MediaPlugin - 从路径获取媒体文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44132055/