如何在c#项目中设置图像目录的相对路径

本文关键字:相对 路径 图像 设置 项目 | 更新日期: 2023-09-27 18:06:30

我正在c#项目上工作,我需要使用相对路径从图像目录中获取图像。我试过了

var path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + @"'Images'logo.png";
var logoImage = new LinkedResource(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)+@"'Images'logo.png")

但是没有运气……当程序运行时,我已经将图像复制到输出目录,但它不拾取这些图像。

如何在c#项目中设置图像目录的相对路径

如果你在c#中使用LinkedResource(),它很可能不会获取你的相对URI或文件位置。

你可以使用一些额外的代码

var outPutDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
var logoimage = Path.Combine(outPutDirectory, "Images''logo.png");
string relLogo = new Uri(logoimage).LocalPath;
var logoImage = new LinkedResource(relLogo)

现在它将获取您的相对路径,将其转换为内存中的绝对路径,它将帮助您获得图像。

首先,将这些图像文件添加到您的项目中(创建一个image文件夹是一个好主意)

其次,在解决方案管理器中选择图像,并查看属性窗口。

然后,将"copy to output folder"改为"always"或"copy when update"

p。我的IDE是trade。中文所以我不能保证正确的关键词在你的语言

我要确保Images目录位于输出文件夹中。我通常使用Assembly.GetExecutingAssembly().Location来获取我的dll的位置。

但是,对于图像,我通常使用项目的Properties页中的Resources页/集合。这里有更多的信息。把图片放到项目的资源中会自动给你一个简单的方法来访问它。

有关GetExecutingAssembly的更多信息:MSDN Page

如果你想用你的应用程序在你的文件夹中显示图像,使用一个数组,并把你文件夹中的所有图片放入数组中。然后你可以前进和后退。

string[] _PicList = null;
int current = 0;
_PicList = System.IO.Directory.GetFiles("C:''Documents and Settings''Hasanka''
                                               Desktop''deaktop21052012''UPEKA","*.jpg"); 
// "*.jpg" will select all 
//pictures in your folder

String str= _PicList[current];
DisplayPicture(str);
private void DisplayPicture(string str)
{
    //throw new NotImplementedException();
    BitmapImage bi = new BitmapImage(new Uri(str));
    imagePicutre.Source = bi; // im using Image in WPF 
    //if u r using windows form application it must be a PictureBox i think.
    label1.Content = str;
}