【问题标题】:XML file with imbedded image data or ZIP file with XML + separate image files带有嵌入图像数据的 XML 文件或带有 XML + 单独图像文件的 ZIP 文件
【发布时间】:2009-10-30 12:26:19
【问题描述】:

我需要为我的软件制作文件格式。数据是基本的键/值对和图像。选项有:

1) 一个带有 CDATA 标记的 XML 文件,其中包含二进制编码的图像文件或以 RGBRGBRGB 或 RGBARGBARGBA 格式编码的图像文件。

2) 一个包含键/值对和图像文件链接的 XML 文件。这些图像文件将与 XML 文件一起打包成 ZIP 或 TAR

您认为最好的方法是什么?如果任何一个都可以,你认为哪一个更容易实现?我正在使用 wxwidgets,wxImage 类有一个 getData() 函数,它返回一个 RGB 格式的数组。将此数组写入 XML 会比 base 64 编码 jpeg/png 等更容易吗?我从来没有以编程方式处理过 ZIP 文件,但我知道 wxwidgets 中有一个帮助类来处理这种事情。

感谢任何见解。

【问题讨论】:

标签: xml serialization


【解决方案1】:

使用 Nestor 建议的 Open Packaging Conventions 和 Open XML SDK1 是一种选择,但您也可以轻松推出自己的这种格式版本。

一般来说,我更喜欢压缩选项,因为文件大小会小得多。 XML可以很好地压缩,图像不会被扩展。

当使用带有嵌入图像的单个 XML 文件时,您必须使用 base64 编码来保存图像。编码图像的大小将比原始大小大约1.37 times larger

但是,单个 XML 文件在进一步处理文档方面可能具有优势,例如,您可以将其直接用作 XSL 转换的输入文档而无需额外解压缩。

1OpenXML 格式就是一个很好的例子。通常,文件存储在满足开放打包约定的 zip 包中。但是,还有一个可用的 XML 文件版本,so-called Flat OPC format(至少在 Word 2007 中)用作 XSLT 和其他文档处理步骤的输入/输出格式。

【讨论】:

    【解决方案2】:

    您为什么不使用Open XML Format SDK 而不是自己创建? Open XML 是 Office 2007 用于其文件(Excel、Word、Powerpoint 等)的,基本上是 2)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 2015-08-24
      • 1970-01-01
      相关资源
      最近更新 更多