2011-01-05 78 views
0
Dim Image1 As New Bitmap(Application.StartupPath + "\Resources\Pic1.png") 

但是我得到一个错误....它说无效的参数。 我想从我的应用程序的资源文件夹中找到的名为Pic1.png的图像创建一个位图。Visual Basic:从路径创建位图?

+1

在编译时,资源通常内置在EXE中,实际上并不存储在文件夹中,所以遵循binil的suggestio – 2011-01-05 07:27:12

回答

1

,如果你在你的Resources文件夹中的文件,你可以这样调用它在这种情况下My.Resources.FileName

Dim Image1 As New Bitmap(My.Resources.Pic1) 
0

无效参数通常意味着文件未找到。我想如果你在msgbox之前添加一行(文件名为&“=”& io.file.exists(filename)),你会看到。

如果您确实想通过文件系统访问它,则需要设置要复制到本地的文件的属性。

如果要将其作为资源进行访问,则需要通过项目属性中的资源屏幕将其添加到项目中。然后,您可以使用My.Resources.filename访问它

0

您必须确保您的调试或发布文件夹运行的exe包含名为“resources”的文件夹并包含“pic1.png”。您可能需要验证application.startuppath点喜欢这样的路径:

MessageBox.show(application.startuppath) 

现在你的程序启动时,您将能够手动验证它做什么你认为它应该和文件在正确的位置。您还可以使用以下命令来检查文件是否首先存在:

Dim Image1 as Bitmap 
If (System.IO.File.Exists(Application.StartupPath + "\Resources\Pic1.png")) Then 
    Image1 = New Bitmap(Application.StartupPath + "\Resources\Pic1.png") 
Else 
    MessageBox.show("File: " & Application.StartupPath + "\Resources\Pic1.png" & " doesn't exist. Check file and try again.") 
    End 
End If 

如果遇到任何问题,请告知我。

+0

好了,MessageBox引发了一条路径,我尝试跟着它,但找不到AppData文件夹在c:\ Users \ Administrator \ AppData \ Local \ Temporary Projects \ Test \ bin \ Debug .....在我的解决方案资源管理器窗口中,我有一个Resources文件夹,并有Pic1.png – Voldemort 2011-01-05 18:25:02

+0

好吧,MessageBox给了我一个路径我的项目的Debug文件夹。但是这里不是Resources文件夹的位置!这就是为什么我得到错误....但是,我如何访问资源文件夹? – Voldemort 2011-01-05 18:34:14

+0

Application.StartupPath指向您的.exe文件所在的文件夹,在本例中为debug文件夹。如果要使用Application.StartupPath,或者如果要将文件用作内置资源,则必须提供文件的完整路径并将文件放置在那里,则必须将该文件拖动到项目中 - >“属性 - >资源窗口。一旦将其拖入该窗口,将该资源的属性更改为“嵌入.resx”。现在要访问资源,你必须使用My.Resources.Pic1这应该为你做。 – Davido 2011-01-05 21:34:49