VB.NET - 如何使用外部 .resources 文件中的图片?

标签 vb.net image resources

我想知道如何使用放置在外部 .resources 文件中的图像。长话短说:我的程序发生了很多变化,而其中的图像每年只更新一次。我认为可以通过将这些图像存储到二进制资源文件中来减少用户需要下载的数量,因此只需要重新下载主要的可执行文件。我使用如下方式生成了该文件:

Dim stream As System.IO.Stream
Dim rsxw As New System.Resources.ResXResourceWriter("MyData.resx")
stream = Me.GetType().Assembly.GetManifestResourceStream("MyProgram.File1.png")
Dim bmp = New Bitmap(stream)
stream.Close()
Dim img As System.Drawing.Image = CType(bmp, System.Drawing.Image)
rsxw.AddResource(name, img)
bmp.Dispose()
img.Dispose()
rsxw.Close()

然后,我使用 ResGen 将生成的 resx 文件编译为 .resources 文件。我现在想在我的程序中使用这些图像。

我最初是这样做的:

dim filename as string = "File1"
stream =Me.GetType().Assembly.GetManifestResourceStream("MyProgram." & filename & ".png")
picboximg = New Bitmap(stream)
stream.Close()
PreviewBox.Image = picboximg

但是由于资源不再嵌入,因此该方法不再有效。现在我该如何从该资源文件中获取图像?

感谢您的帮助!

最佳答案

您可以使用 ResourceReader class 来执行此操作.

但是没有充分的理由放弃 My.Resources 的便利性和类型安全性。只需将一个类库项目添加到您的解决方案中,将其命名为(例如)MyRes。单击“解决方案资源管理器”窗口工具栏中的“显示所有文件”按钮。展开我的项目并双击 Resources.resx。在工具栏上,将访问修饰符属性更改为“公共(public)”。像平常一样添加资源。添加项目引用,您现在可以在代码中简单地访问此单独 dll 中的资源。例如:

    Me.BackgroundImage = MyRes.My.Resources.animation

关于VB.NET - 如何使用外部 .resources 文件中的图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22641264/

相关文章:

vb.net - vb.net-主要方法或每种方法的错误处理

.net - 尝试连接到网络共享时句柄无效

java - 允许用户在 Java Swing 应用程序中复制图像?

Java资源,返回空指针

java - java中如何根据环境加载资源文件?

asp.net - 更快地创建 CSV 文件

javascript - 原始 javascript 日期到 VB.net 日期时间

html - 将 HTML 元素放置在具有动态大小的图像上

Javascript 多图像通过按钮点击进行更改

c# - 资源位图文件 - 不包含属性定义