更有效的方式来更改PictureBox中的图像

时间:2013-09-10 10:12:08

标签: c# image picturebox

INTRO:

亲爱的程序员,祝你好!我环顾四周,无法找到我的简单问题的答案,有些问题确实回答了我的问题,但是它们似乎对我来说是先进的,所以我在这里打印我的简单情况。

问题:

我想更改 PictureBox BackgroundImage 图片,这就是我如何做到这一点:

PictureBox.Image = new Bitmap(@"C:\Users\Ailayna\documents\visual studio 2012\Projects\FormCritterTalking\FormCritterTalking\Character Pictures\CharacterNormal.png");

这张照片位于我的一个项目文件夹中,有些如何编写整个画面路径对我来说没有任何逻辑意义,因为我已将所有需要的图片包含在项目中,在特定项目的文件夹中,我想知道是否有更多改变图片的有效方法,而不是指定图片所在的整个路径?

有没有办法直接访问我的项目图片所在的文件夹,例如:PictureBox.Image = FolderName.PictureName;

我想知道你们是如何以更有效和更整洁的方式做到这一点的?另一件事是,我是否总是要说“新位图”?它可以是其他东西吗?

3 个答案:

答案 0 :(得分:1)

我不知道WPF中有任何PictureBox控件,但是如果你在WPF中寻找相同的东西你可以在XAML中这样做:

<Image Source="/MyProject.UI.Common;component/Images/Cut.png"/>

此处您的图片位于“图片”文件夹中。

答案 1 :(得分:1)

  

有没有办法直接访问我的项目图片所在的文件夹   使用代码定位,例如:PictureBox.Image =   FolderName.PictureName;

是的,有。它被称为资源。 在项目中选择属性,然后选择资源。添加图片。 访问它:

yourProjectName.Properties.Resources.imageName 

但是我建议使用流来访问图像。这是正确的方法,特别是在位图的情况下。不要忘记事后处理它。 See my answer here如何做到这一点。

答案 2 :(得分:0)

免责声明:由于您直接在硬盘上加载图片(我假设它正在运行),我猜我们正在谈论WinForms项目。

您可以选择多种选项。

最简单的可能是获取当前的应用程序组件文件夹并使用它:

How do I get the path of the assembly the code is in?

var dir = AppDomain.CurrentDomain.BaseDirectory;

图像应与可执行文件一起复制。然后你可以使用上面的代码来获取当前目录,或者你可以尝试依赖相对路径(从可执行文件所在的位置到图像)。

另一个选择是将图片添加为资源 - 这些将是您的应用程序的一部分,但阅读它们的过程有点复杂。

相关问题