You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI从Stream加载IImage遇流关闭错误,如何存储图片用于视图显示?

问题:MAUI中正确存储并显示Base64格式图片

场景与模型定义

我从API获取Base64格式的图片,将其存储到Dish模型的imageData字段中,模型定义如下:

public class Dish
{
    public int? productId { get; set; }
    public string? name { get; set; }
    public decimal? price { get; set; }
    public string? description { get; set; }
    public int? productCategoryId { get; set; }
    public string? notes { get; set; }
    public string? imageData { get; set; }
    public PlatformImage? image { get; set; }
}

当前实现与需求

我需要处理一个List<Dish>集合,将Base64解析为字节流后绘制图片。此前尝试从MemoryStream加载图片时遇到“Closed stream”错误,于是改用当前代码实现,但作为.NET、MAUI及C#新手,我希望能正确存储图片,后续将其与模型其他信息一同在视图中显示。当前代码如下:

foreach (var dish in dishList)
{
    IImage image;
    ICanvas canvas;
    var imagen = await httpClient.GetAsync($"https://mydinner.ch/ManagementAPI/api/ProductImages/GetDefaultImageByProductId?productId={dish.productId}");
    var imagenesString = await imagen.Content.ReadAsStringAsync();

    var imagenes = JsonConvert.DeserializeObject<Dish>(imagenesString);
    byte[] imageBytes = Convert.FromBase64String(imagenes.imageData.Substring(23));
    var ms = new MemoryStream(imageBytes);
   
    image = PlatformImage.FromStream(ms);

  
    if (image != null)
    {
        canvas.DrawImage(image, 10, 10, image.Width, image.Height);
        
    }
}

内容的提问来源于stack exchange,提问作者David Isea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 11:01:22