我在哪里可以放置一个图像文件,以便程序可以自动找到它?

时间:2012-12-13 22:12:16

标签: c# image

目前我正在努力使其能够从程序中访问图像“staticmap.bmp”,以便我可以将程序传输到另一台计算机并仍然可以访问该图像。我已经尝试将文件传输到程序文件中,但它没有在visual studio选项卡中显示为存在,也许我将它移动到错误的位置?要么是我正确地称它?

有谁知道图片文件必须在哪里才能被调用?

这是代码,

Image image = Image.FromFile("staticmap.bmp");

5 个答案:

答案 0 :(得分:2)

如果您只想打开这样的文件:

Image image = Image.FromFile("staticmap.bmp");

然后,staticmap.bmp只需与可执行文件位于同一文件夹中。

答案 1 :(得分:1)

将其作为嵌入式资源添加到应用程序中。一个简单的谷歌搜索将找到这样做的教程。

答案 2 :(得分:0)

您需要添加资源 - 右键单击​​项目,属性,资源。

请参阅msdn docs

答案 3 :(得分:0)

应用程序可以确定它是从哪个目录开始的,如

string dir = System.IO.Path.GetDirectoryName(
    System.Windows.Forms.Application.ExecutablePath
);

另一种选择是(如果您没有引用WinForms):

string dir = System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetEntryAssembly().Location
);

如果图像位于应用程序目录中的子目录Images

Image image = Image.FromFile(System.IO.Path.Combine(dir, @"Images\staticmap.bmp"));

答案 4 :(得分:0)

右键单击解决方案资源管理器中的图像,选择“属性”。将“构建操作”设置为“内容”,将“复制到输出目录”设置为“始终复制”,以确保将映像复制到与构建时的可执行文件相同的目录。

或者,右键单击解决方案资源管理器中的项目,选择“属性”,转到“资源”选项卡,按“添加资源”按钮右侧的小箭头,选择“添加现有文件”并选择要使用的图像作为资源。然后你可以像这样使用它:

Image image = Properties.Resources.staticmap;