我需要将xamarin表单图像转换为base64格式,任何人都可以帮我这个吗?
这就是我尝试这样做的方式,但它确实有效。
var inputStream = signatureImage.Source.GetValue(UriImageSource.UriProperty);
//Getting Stream as a Memorystream
var signatureMemoryStream = inputStream as MemoryStream;
if (signatureMemoryStream == null)
{
signatureMemoryStream = new MemoryStream();
inputStream.CopyTo(signatureMemoryStream);
}
//Adding memorystream into a byte array
var byteArray = signatureMemoryStream.ToArray();
//Converting byte array into Base64 string
base64String = Convert.ToBase64String(byteArray);
" signatureImage"是图像名称。
答案 0 :(得分:5)
获得file
路径后,您可以使用以下适用于我的代码。
var stream = file.GetStream();
var bytes = new byte [stream.Length];
await stream.ReadAsync(bytes, 0, (int)stream.Length);
string base64 = System.Convert.ToBase64String(bytes);
我发现它here
答案 1 :(得分:0)
图像只是Xamarin表单中用于显示图像的控件。 它不是可以从中获取图像字节数组的东西。
您最好使用Media Plugin并将其保存到磁盘。然后通过内存流加载并转换。
您也可以使用FFImageLoading。它有两种方法可供您使用:
SO问题 - Convert Image into byte array in Xamarin.Forms显示了如何在特定于平台的代码here中执行此操作。
论坛帖子(Convert Image to byte[])对你为何无法从控件中获取它进行了很好的讨论。
答案 2 :(得分:0)
您也可以按照以下步骤进行操作
var base64String = Convert.ToBase64String(File.ReadAllBytes(file.Path))