-1

目前我正在尝试这样做,以便我可以从程序中访问图像“staticmap.bmp”,以便我可以将程序传输到另一台计算机并且仍然可以访问图像。我已经尝试将文件传输到程序文件中,但它没有在 Visual Studio 选项卡中显示为存在,也许我将它移动到错误的位置?是那个还是我正确地调用它?

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

这是代码,

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

5 回答 5

2

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

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

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

于 2012-12-13T22:16:16.347 回答
1

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

于 2012-12-13T22:15:22.130 回答
1

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

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

Image image = Properties.Resources.staticmap;
于 2012-12-13T22:35:50.200 回答
0

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

msdn 文档

于 2012-12-13T22:16:19.750 回答
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"));
于 2012-12-13T22:27:05.873 回答