如何在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#中使用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;
}