在图片框中更改图像的更有效方法

本文关键字:图像 有效 方法 | 更新日期: 2023-09-27 18:30:43

简介:

亲爱的程序员,美好的一天!我环顾四周,不太能找到我简单问题的答案,有些问题确实回答了我的问题,但是它们似乎很先进,让我无法理解,所以我在这里打印我的简单情况。

问题:

我想更改背景图像图片框的图像,这就是我这样做的方式:

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

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

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

我想知道你们是如何以更有效和整洁的方式做到这一点的?还有一件事是,我总是要说"新位图"吗?会不会是别的什么?

在图片框中更改图像的更有效方法

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

是的,有。这就是所谓的资源。在项目中,选择属性,然后选择资源。添加图像。访问它:

yourProjectName.Properties.Resources.imageName 

但是,我建议使用流来访问图像。这是正确的方法,尤其是在位图的情况下。事后不要忘记处理它。请参阅我的答案 如何做到这一点.

我不知道

WPF 中有任何 PictureBox 控件,但如果您在 WPF 中寻找相同的控件,您可以在 XAML 中这样做:

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

在这里,您的图像位于"图像"文件夹中。

免责声明:由于您直接从硬盘驱动器加载图片(并且我假设它正在工作),我猜我们正在谈论WinForms项目。

您可以选择许多选项。

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

如何获取代码所在的程序集的路径?

var dir = AppDomain.CurrentDomain.BaseDirectory;

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

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