【问题标题】:How to convert Embedded image to Base64 string in xamarin forms..?如何将嵌入式图像转换为 xamarin 形式的 Base64 字符串..?
【发布时间】:2018-10-30 15:57:47
【问题描述】:

我想将嵌入式图像转换为 base 64 字符串。该图像在 PCL 解决方案中,所以让我知道如何将图像转换为 base64。因为我尝试了很多方法,但我没有正确获取文件路径。所以请帮我解决这个问题。

【问题讨论】:

  • 欢迎来到 SO,请四处看看,看看如何在这个社区提出适当的问题。
  • 好吧,我有一个问题 Mosin,您要转换为 Base64 的 PCL 解决方案中的这张图片是 Embedded image 吗?
  • @G.hakim 是的,它是嵌入式图像..
  • 好的,一分钟后发布答案

标签: xamarin xamarin.forms


【解决方案1】:
//file to base64 string
byte[] b = System.IO.File.ReadAllBytes(FileName);
String s = Convert.ToBase64String(b);

//base64 string to file
byte[] data = Convert.FromBase64String(s);
System.IO.File.WriteAllBytes(FileName2, data);

【讨论】:

  • 我尝试了另一种解决方案并修改了我的答案,您可以检查一下吗?
  • 我尝试了另一种解决方案..它给出了错误,例如 cannot Xamarin.Forms.Image to byte[]
  • 我已经修改了我的答案,你可以检查一下吗?
  • 我的图像是嵌入式图像或资源图像......他们已经在解决方案中......所以我得到了正确的图像路径......所以这个答案也不起作用
【解决方案2】:

由于是嵌入式资源,获取图片的路径是转成流的问题,你可以通过以下步骤获取你的嵌入式图片的路径:

string imagePath = "NameOfProject.Assets.applicationIcon.png"; 

注意:这是您将给出的路径的示例路径,其中项目名称是项目名称,资产是我保存图像的文件夹,应用程序图标是图像。 (我希望你明白我在这里做什么)

之后获取大会详细信息,如下所示:

Assembly assembly = typeof(NameOfClass).GetTypeInfo().Assembly;

然后在 using 语句中将您的图像转换为流,就像这样

string result;
using (Stream stream = assembly.GetManifestResourceStream(imagePath))
{
  long length = stream.Length;
  byte[] buffer = new byte[length];
  stream.Read(buffer, 0, (int)length);
  result = Convert.ToBase64String(data);
}

在查询时还原。

【讨论】:

    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 2018-09-07
    • 2014-07-21
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多