目前我正在尝试这样做,以便我可以从程序中访问图像“staticmap.bmp”,以便我可以将程序传输到另一台计算机并且仍然可以访问图像。我已经尝试将文件传输到程序文件中,但它没有在 Visual Studio 选项卡中显示为存在,也许我将它移动到错误的位置?是那个还是我正确地调用它?
有谁知道图片文件必须在哪里才能被调用?
这是代码,
Image image = Image.FromFile("staticmap.bmp");
如果您只想像这样打开文件:
Image image = Image.FromFile("staticmap.bmp");
然后 staticmap.bmp 只需要与可执行文件位于同一文件夹中。
将其作为嵌入式资源添加到应用程序中。一个简单的谷歌搜索将找到一个教程来做到这一点。
在解决方案资源管理器中右键单击图像,选择“属性”。将“构建操作”设置为“内容”,将“复制到输出目录”设置为“始终复制”,以确保在构建时将映像复制到与可执行文件相同的目录。
或者,在解决方案资源管理器中右键单击项目,选择“属性”,转到“资源”选项卡,按“添加资源”按钮右侧的小箭头,选择“添加现有文件”并选择要用作资源的图像。然后你可以像这样使用它:
Image image = Properties.Resources.staticmap;
您需要添加一个资源 - 右键单击项目、属性、资源。
应用程序可以像这样确定它是从哪个目录启动的
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"));