我在Windows窗体解决方案中有一个图片框图像。用户从数据库中选择一个项目后,我想将图像加载到此图片框中。图像的文件名将来自数据库,所有图像必须存储在应用程序文件夹(\ Images)的子文件夹中。 我不想在我的解决方案中包含所有这些(2000-3000图像),此外,随着数据库的增长,用户将添加更多图像。 另外,我不想编写绝对路径。所以这不是我想要的:
pictureBox.Image = Image.FromFile(@"C:\Program Files\Application\Images\" + dbase.filename);
我想编写图像文件夹的相对路径,因此无论应用程序将安装在何处,都可以从此特定子文件夹加载图像。 我尝试过这样的事情,使用名为" test.jpg"的临时测试图像:
pictureBox.Image = Image.FromFile(@"Images\test.jpg");
pictureBox.Image = Image.FromFile(@"..\Images\test.jpg");
pictureBox.Image = Image.FromFile(@"|DataDirectory|\Images\test.jpg");
但这些都不起作用。我只能使用绝对路径,例如" C:\ Images \ test.jpg"。我该怎么办?
答案 0 :(得分:2)
您是否尝试过PictureBox.Load Method?
如果url参数指示本地文件,则建议的格式是本地文件路径。例如,名为myPicture.jpglocated atc:\的图像文件将通过传递c:\ myPicture.jpg来访问url参数。可以使用完整路径,例如http://www.contoso.com/path/images/image.jpg,或相对路径,例如./images/image.jpg。如果使用相对路径,则将其视为相对于工作目录。对Load方法的调用将ImageLocation属性设置为url的值。
答案 1 :(得分:1)
我会使用反射来获取执行目录,例如:
string ImagesDirectory =
Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
"Images"
);
答案 2 :(得分:0)
将图片加载到 picturbox 的最佳方法是从项目资源文件夹中加载所需的图片。
为此,请执行以下操作:
从资源文件夹中将图片加载到图片框。
Form1.pictureBox1.Image = yourProject.Properties.Resources.YourImage;
注意:图像类型不是必需的[.bmp,.jpg等]