将 C#/.NET 中的位图序列化为 XML

2023-12-11

我想要XML序列化一个复杂的类型(类),它有一个System.Drawing.Bitmap 类型的属性除其他外。

    /// <summary>
    /// Gets or sets the large icon, a 32x32 pixel image representing this face.
    /// </summary>
    /// <value>The large icon.</value>
    public Bitmap LargeIcon { get; set; }

我现在发现使用默认 XML 序列化程序序列化 Bitmap 不起作用,因为它没有公共无参数构造函数,而默认 xml 序列化程序则强制使用该构造函数。

我知道以下几点:

  • 有一个解决方法,发布在这里:http://www.dotnetspider.com/resources/4759-XML-Serialization-C-Part-II-Images.aspx。然而,由于这包括添加另一个属性,这在我看来有点像黑客。
  • sourceforge 上还有一个深度 XML 序列化项目。

我不想引用另一个项目,也不想广泛调整我的类以仅允许这些位图的 xml 序列化。

难道就没有办法保持这么简单吗?

非常感谢,马塞尔


我会做类似的事情:

[XmlIgnore]
public Bitmap LargeIcon { get; set; }

[Browsable(false),EditorBrowsable(EditorBrowsableState.Never)]
[XmlElement("LargeIcon")]
public byte[] LargeIconSerialized
{
    get { // serialize
        if (LargeIcon == null) return null;
        using (MemoryStream ms = new MemoryStream()) {
            LargeIcon.Save(ms, ImageFormat.Bmp);
            return ms.ToArray();
        }
    }
    set { // deserialize
        if (value == null) {
            LargeIcon = null;
        } else {
            using (MemoryStream ms = new MemoryStream(value)) {
                LargeIcon = new Bitmap(ms);
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 C#/.NET 中的位图序列化为 XML 的相关文章

随机推荐

  • fwrite() 性能远低于磁盘容量

    我有一个动态分配的数组struct拥有 1700 万个元素 为了将其保存到磁盘 我写 fwrite StructList sizeof Struct NumStructs FilePointer 在稍后的步骤中 我用等效的内容阅读了它fre
  • 在 Tensorflow 中重用 LSTM 的重用变量

    我正在努力使RNN using LSTM 我做了LSTM模型 后面有两个DNN网络和一个回归输出层 我训练了我的数据 最终的训练损失约为0 009 然而 当我将模型应用于测试数据时 损失变为大约0 5 第 1 轮训练损失约为0 5 所以 我
  • Jquery 从文本中提取 URL

    我需要使用 jquery 从文本中提取 URL 可以说我在页面上的某个地方遵循文本区域代码
  • 多视图应用程序的knockoutjs模式示例[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在构建一个应用程序 其中包含两个复杂的 显着不同的 但具有一些共享组件 视图 一个视图允许用户运行查询并查看搜索结果 另一个视图提供最近活动的概述 相关示例可能是具有电子邮件屏幕
  • Android Studio-Java.exe 已完成,退出值非零 2

    当我尝试运行我的应用程序时 我收到此错误 Error Execution failed for task app dexDebug gt com android ide common process ProcessException org
  • 在 Ajax Adob​​e AIR 应用程序中与 API 共享机密

    我对开发 AIR 应用程序还很陌生 所以也许这是一个愚蠢的问题 但我似乎无法从 Google 找到任何答案 非常感谢您能给我的任何帮助 我正在使用 Ajax 构建一个 AIR 应用程序 使用的 API 与 flickr 的 API 相同 并
  • Google 地图地理编码(GLatLng 地址)

    我正在尝试使用 Google Maps JavaScript API 从两个位置绘制测地折线address点 var polyOptions geodesic true var polyline new GPolyline new GLat
  • 无法写入从两个压缩数据帧创建的 PySpark 数据帧

    我正在尝试跟随这里给出的例子用于组合两个数据框没有共享连接密钥 通过数据库表或 pandas 数据框中的 索引 进行组合 但 PySpark 没有该概念 My Code left df left df repartition right d
  • 安装了 Ruby on Rails,但是当我尝试运行 Rails Sever 时它没有加载 WEBrick?

    我今天在我的 mac 上安装了 Ruby on Rails 以及 Gems 和 MYsql 我正在尝试遵循 lynda com 教程 但遇到了困难 当我尝试运行 Rails 服务器时 由于某种原因它没有加载 WEBrick 这是我得到的错误
  • Pandas Dataframe - 根据两列找到最小值但大于0的行

    我有一个包含 3 列的数据框 x y 时间 有几千行 我想要做的是检索时间最短的行 但我希望最小值不应该为 0 e g x y time 240 1 28 5 240 2 19 3 240 240 0 240 19 9 7 到目前为止我已经
  • dyld:找不到符号:__TMPdCSs12AnyGenerator

    当我尝试构建并运行我的项目时 它给了我一个错误symbol not found TMPdCSs12AnyGenerator 我已经在我的系统上安装了 Xcode 7 beta 当我安装时它给我一个错误未找到领域模块所以我只是删除了领域框架
  • 如何对合并光标进行排序?

    任务是将来自 2 个具有相似列的不同表的数据组合起来 并按一列排序 看起来 MergeCursor 可能会有所帮助 但不知道如何对项目进行排序 我现在看到的唯一解决方案是手动转换为 ArrayAdapter 或者进行偷偷摸摸的 JOIN 尚
  • 为什么只允许UI线程修改UI?

    我知道 如果我从不同的线程修改控件 我应该小心 因为 WinForms 和 WPF 不允许从其他线程修改控件的状态 为什么会有这样的限制 如果我可以编写线程安全代码 我应该能够安全地修改控件状态 那么为什么会有这样的限制呢 一些 GUI 框
  • 如何获取从 FileProvider 类获取的图像文件的方向?

    背景 针对API 24或更高版本 开发人员需要使用FileProvider 或他们自己的ContentProvider 而不是使用简单的 Uri fromFile 命令 以便让其他应用程序访问该应用程序的文件 问题 我尝试使用以下代码打开相
  • MySQL 查询使用 JOIN 不使用 INDEX

    我在 MySQL 简化 中有以下两个表 clicks InnoDB 包含约 70 000 000 条记录 有一个索引date added column 有专栏link id它指的是记录links table links MyISAM 包含的
  • Jetty 9(嵌入式):在运行时添加处理程序

    有没有办法将处理程序添加到正在运行的嵌入式 Jetty 实例 我们已将旧的基于 Jetty 6 的项目迁移到 Jetty 9 我们的插件系统需要能够添加和删除动态处理程序 请参阅下面的示例 Server server new Server
  • IstIO 出口网关出现 HTTP 503 错误

    我有以下用于部署 IstIO 出口网关路由的清单 apiVersion networking istio io v1alpha3 kind ServiceEntry metadata name REDACTED egress se spec
  • 覆盖图形内容的窗框

    这是我在这里发表的第一篇文章 我有一个看起来很菜鸟的问题 但这在过去一个小时左右一直困扰着我 我正在制作一个简单的 JFrame 其中包含 JPanel 但 Windows 7 边框似乎挡住了我对面板部分内容的查看 例如 如果我在坐标 0
  • 计算 PANDAS groupby 中具有连续日期的行数

    这是我发现的最接近我正在寻找的内容 假设我的数据框看起来像这样 d item number K208UL AKD098008 DF900A K208UL AKD098008 Comp ID 998798098 988797387 12398
  • 将 C#/.NET 中的位图序列化为 XML

    我想要XML序列化一个复杂的类型 类 它有一个System Drawing Bitmap 类型的属性除其他外