2011-02-01 72 views
6

我有一个现有的Winforms应用程序,它有几个窗体,每个窗体的两个主按钮上都有相同的按钮图像(确定并取消)。通过将Button的Image属性设置为“本地资源”并导入所需的图像,在VS Designer中设置图像。从Winforms窗体/按钮/图像属性中提取本地资源图像

我无权访问原始图像文件。如何从Image属性设置为Button的Button控件的Image属性中提取图像?

Screenshot

回答

1

实际上图像不存储在文件系统中,而是添加到表单的RESX文件(例如MainForm.resx),为64位编码的序列化表示。如果你知道如何,你可以base64解码该字符串,将结果保存在一个平面文件中并正确命名(你必须知道图像类型)。

+0

您可以Base64编码的字符串解码为二进制文件的位置:http://www.freeformatter.com/base64-encoder.html – Dan 2014-11-12 14:32:14

6

我发现比手动解码Base64更简单的方法。

假设您的形式被称为Form1中:

  1. 展开Form1.cs中在Solution Explorer。
  2. 双击Form1.resx打开资源设计器。
  3. 右键单击想要提取的图像。
  4. 选择“导出到文件...”。

这适用于持久性设置为“Embedded in .resx”的资源。如果持久性是“在编译时链接的”,则该图像已经作为文件存在于项目的资源目录中。

Screenshot

+0

@KyleMit感谢您的截图! – Dan 2016-11-16 18:48:05