如何在 resx 中从 ImageListStreamer 中获取图像文件

本文关键字:获取 图像 文件 ImageListStreamer 中从 resx | 更新日期: 2023-09-27 18:32:40

我正在使用的Ann应用程序从.resx文件中的序列化ImageList对象中获取一些图标。这很难维护,因为我无法编辑甚至看不到Visual Studio中的图像。

如何将图像恢复为文件(PNG 或位图)?然后我可以改用它们并删除讨厌的 ascii 资源。


<data name="imageList.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
    <value>
        AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
        ...
        A///AAIACw==
    </value>
</data>

(完整的ascii文本长达数百行)

如何在 resx 中从 ImageListStreamer 中获取图像文件

我遇到了类似的问题 - 但我需要提取这样的数据:

<data name="barButtonItem.LargeGlyph" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
   iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL

我在谷歌上搜索了"mime64 到二进制文件在线",从那里跳到第一个 mime64 解码器 - 例如这样:http://www.motobit.com/util/base64-decoder-encoder.asp

然后将 MIME64 解码为纯二进制。使用扩展名保存.png - 瞧 - 我现在有图像了。

我想可以在图标上尝试类似的方法,但不确定这是否适用于它们。可能还需要某种十六进制二进制剪切膏。

我遇到了同样的问题,我在这里找到了一个方便的解决方案。

使用ResXResourceReader,您可以读取文件并枚举它。