从特定文件加载图像

Posted

技术标签:

【中文标题】从特定文件加载图像【英文标题】:Load image from specific file 【发布时间】:2017-02-27 15:29:34 【问题描述】:

如何将 ImageSource 设置为来自特定文件夹的图像?

我尝试在 Debug 中移动图像并运行以下代码:

image.Source = new BitmapImage(new Uri("kafpodhlato.png"));

但我收到以下错误:

“System.UriFormatException”类型的未处理异常发生在 系统.dll

附加信息:无效的 URI:URI 的格式不能 确定。

编辑:创建一个名为 Resources 的文件夹,将其 Build action 设置为 Resource,然后使用以下代码解决了我的问题。

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/Resources/panamaxi.png"));

【问题讨论】:

也许使用另一个Uri 构造函数? 【参考方案1】:

这应该可行:

image.Source = new BitmapImage(new Uri("kafpodhlato.png", UriKind.Relative));

但是,您可能希望通过 Pack URI 从程序集资源加载图像。

将图像文件添加到您的 Visual Studio 项目中,例如到名为Images 的文件夹。然后将其Build Action设置为Resource,并通过

image.Source = new BitmapImage(new Uri("pack://application:,,,/Images/kafpodhlato.png"));

【讨论】:

试过了,没有错误,但图像无法加载...也许我必须更好地指定路径?还是把图片放到Debug中就解决了这个问题? @ThP 查看我的编辑。您应该使您的图像文件成为程序集资源。 您能解释一下如何将其Build Action 设置为Resource 吗?我目前没有要更改的属性,除了它的名称。 见这里:***.com/a/12693661/1136211。在 VS 中,打开文件的内容菜单并选择属性。 您确定在 Pack URI 中使用了正确的项目文件夹名称吗? image 呢,它是在 XAML 中声明的吗?你确定它是可见的?有很多事情可能是错误的,但我们只能猜测。

以上是关于从特定文件加载图像的主要内容,如果未能解决你的问题,请参考以下文章

在 c# 中从图像中创建具有特定像素格式的位图而不加载图像

加载此 jquery 插件后删除特定类

Flutter 不会加载特定的图像

使用光栅显示 tiff 图像的特定部分,而无需加载整个文件

从目录加载 UIImage 不再起作用

从互联网加载图像后,Viewpager 不包装内容