我有一个带有项目PCL,Android和iOS的xamarin表单解决方案。我在PCL项目中有几张图像,它们链接到Android和iOS项目(drawable / resources文件夹)。因此,如果我想在pcl项目的Image控件中显示此图像,则可以正常使用并正常工作。
但是,我需要将此图像的内容加载到Stream或byte []中(当然,是从/到琐碎的转换),才能提前调用服务。
我如何完成这项任务?如果在pcl项目中有办法更好,但是如果在特定平台上需要代码,就没有问题。
注意:如果我们将图像作为资源嵌入到pcl项目中,此任务将很容易,但是我不希望这样做,我不希望增加应用大小来嵌入重复的图像。
注意:还有其他“类似”问题,但是请从嵌入式资源加载内容,这里不是这种情况。
最佳答案
您需要使用依赖关系,并且需要在特定平台中使用代码才能从映像中获取base64字符串,并且该字符串会自动在本地获取路径
在Pcl项目中
public interface IGetBase64
{
string GenerateBase64(string FileName);
}
在Ios Render中
public string GenerateBase64(string FileName)
{
byte[] b = System.IO.File.ReadAllBytes(FileName);
string s = Convert.ToBase64String(b);
return s;
}
在Android中
public string GenerateBase64(string FileName)
{
byte[] b = System.IO.File.ReadAllBytes(FileName);
string s = Convert.ToBase64String(b);
return s;
}
关于c# - 如何在pcl上加载xamarin共享图像的内容(流或字节[])?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46931031/