在运行时从资源中导出图像

Exporting images from resource at runtime

是否可以在运行时从资源文件中导出(保存)图像?例如,如果我在我的程序中使用一组图像,我将它们放在资源文件中,但是如果用户希望能够保存该图像并将其用于其他事情怎么办......是否可以放一个"save image" 表单上的按钮供用户保存图像而无需我单独向他们发送图像?我在搜索中找到的所有内容都与 .resx 文件本身有关......我不想在运行时 add/save/edit/update 这个文件......我希望能够从中单独导出文件。

您可以使用程序集 class:

在程序集的资源中搜索
Assembly.GetManifestResourceStream (YourResourceName)

使用此功能,您可以检索所需的资源并使用 FileStream 保存它。

这里有一些有用的链接:

Msdn Documentation Resource Reading

Write file from Assembly

您要做的是从工具箱的 Dialogs 组中找到一个 SaveSileDialog 控件。将它添加到您的表单设计器中。然后,此控件将出现在设计器的底部。接下来添加一个 Button(除非你已经这样做了)。

打开按钮的代码,添加:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    SaveFileDialog1.ShowDialog()
End Sub

这将打开我们之前添加的 SaveFileDialog。

打开SaveFileDialog的代码,添加:

Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk
    My.Resources.YourImageHere.Save(SaveFileDialog1.FileName, Drawing.Imaging.ImageFormat.YourFileTypeHere)
End Sub

将 "YourImageHere" 替换为您的资源名称,将 "YourFileTypeHere" 替换为图像的文件类型(即 PNG、JPG、BMP 等)。可以找到有关 SaveFileDialog 控件的文档 here on MSDN

现在您的应用程序应该在用户按下按钮时保存图像。