我正在开发Xamarin应用程序,这是我一直在开发的另一个项目API 的一部分
因此,API将配置文件图片以字节[]的形式发送给Xamarin应用程序,但Xamarin的应用程序不显示它
到目前为止,我已经尝试了来自不同平台的许多选项,包括这里,但它仍然不起作用
我试着将图像转换为64进制字符串,然后在使用显示之前将其转换回字节[]
imageProfilePic.Source = ImageSource.FromStream(() => new MemoryStream(base64Stream.ToArray()));
我尝试过的其他选项包括直接使用数组创建内存流对象,我甚至尝试将图像返回为64进制字符串,然后将其转换为字节数组,并用于创建一个新的MemoryStream来显示图像。
我开始觉得沙马林有严重的问题。
有没有一种方法我可以从API返回一个图像URL,我认为这将是更好的选择,
我使用EF Core和MS SQL 将图像以byte[]数组的形式存储在数据库中
你能把Base64字符串转换成这样的字节数组吗:
var byteArray = Convert.FromBase64String(base64Stream);
然后设置图像源;
imageProfilePic.Source = ImageSource.FromStream(()=> new MemoryStream(byteArray));
我实际上找到了一种显示的方法,我使用了URL,由于我可以访问API,我决定调整API,这样我就不会将图像存储到数据库中,而是将它们存储在文件服务器中,并将它们的URL存储在数据库中,我将使用API返回URL,并使用它以格式访问图片
localhost:/images/picture.jpg
由于我在本地托管API,所以本地主机将被替换为IP地址
在Android应用程序中,它将是
picture.Source=ImageSource.FromUri(myUri(;
它就像一个魅力