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

.NET MAIImage加载异常:本地图片无法加载致转换报错求助

问题描述

我正在开发一个简单的图片转换器项目,使用以下代码加载作为参数传入的图片。图片路径为/storage/emulated/0/Download/Image Converter/Png Images/IMG_20230219_134526.png,该图片确实存在于指定位置,且可在.NET MAUI Image控件中正常显示。

用于加载图片进行转换的代码如下:

private void ConvertImage(string imagePath, string pathSave, ImageFormat format)
{
  Microsoft.Maui.Graphics.IImage image;
  Assembly assembly = GetType().GetTypeInfo().Assembly;
  using (Stream stream = assembly.GetManifestResourceStream(imagePath))
  {
      image = PlatformImage.FromStream(stream);
  }
}

问题在于图片无法正确加载,导致转换后保存图片时抛出异常。

解决方案

你的代码核心错误是误用了程序集嵌入资源的加载方法GetManifestResourceStream——这个方法是用来读取打包在程序集里的内嵌资源,而非设备文件系统中的本地图片。

修改为直接从文件路径打开流即可:

private void ConvertImage(string imagePath, string pathSave, ImageFormat format)
{
    Microsoft.Maui.Graphics.IImage image;
    // 打开本地文件的可读流
    using (Stream stream = File.OpenRead(imagePath))
    {
        image = PlatformImage.FromStream(stream);
    }
    // 此处添加图片格式转换及保存的逻辑
}

另外要确保应用具备文件访问权限:

  • Android平台:Android 13及以下需在AndroidManifest.xml中添加READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE权限;Android 13+则需添加READ_MEDIA_IMAGES权限。
  • iOS平台:需在Info.plist中配置对应权限描述,比如访问相册的NSPhotoLibraryUsageDescription。

内容的提问来源于stack exchange,提问作者Leonardo Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:20:11