我有一个带有项目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/

10-13 06:22