【发布时间】:2023-03-16 19:21:01
【问题描述】:
是否可以在运行时从资源文件中导出(保存)图像?例如,如果我在我的程序中使用一组图像,我将它们放在资源文件中,但是如果用户希望能够保存该图像并将其用于其他事情......是否可以放置一个表单上的“保存图像”按钮供用户保存图像,而无需我单独向他们发送图像?我在搜索中找到的所有内容都与 .resx 文件本身有关...我不想在运行时添加/保存/编辑/更新此文件...我希望能够从中导出文件个人。
【问题讨论】:
是否可以在运行时从资源文件中导出(保存)图像?例如,如果我在我的程序中使用一组图像,我将它们放在资源文件中,但是如果用户希望能够保存该图像并将其用于其他事情......是否可以放置一个表单上的“保存图像”按钮供用户保存图像,而无需我单独向他们发送图像?我在搜索中找到的所有内容都与 .resx 文件本身有关...我不想在运行时添加/保存/编辑/更新此文件...我希望能够从中导出文件个人。
【问题讨论】:
您要做的是从工具箱的 Dialogs 组中找到一个 SaveSileDialog 控件。将其添加到您的表单设计器中。然后,此控件将出现在设计器的底部。接下来添加一个按钮(除非您已经这样做了)。
打开按钮的代码并添加:
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
现在您的应用程序应该在用户按下按钮时保存图像。
【讨论】:
您可以使用 Assembly 类在您的 Assembly 的资源中搜索:
Assembly.GetManifestResourceStream (YourResourceName)
使用此功能,您可以检索您需要的资源并使用 FileStream 保存它。
这里有一些有用的链接:
【讨论】: