我需要为我的软件制作文件格式。数据是基本键/值对和图像。选项包括:
1)一个XML文件,其CDATA标记包含以RGBRGBRGB或RGBARGBARGBA格式编码的二进制编码图像文件或图像文件。
2)一个XML文件,包含键/值对和图像文件的链接。这些图像文件将与ZIP文件一起打包在ZIP或TAR中
您认为最好的方法是什么?如果其中一个没问题,您认为哪一个更容易实现?我使用的是wxwidgets,而wxImage类有一个getData()函数,它返回RGB格式的数组。将此数组写入XML比基于64编码jpeg / png等更容易吗?我从来没有以编程方式处理过ZIP文件,但我知道wxwidgets中有一个帮助类用于此类事情。
任何见解都表示赞赏。
答案 0 :(得分:3)
使用Nestor建议的Open Packaging Conventions和Open XML SDK 1 是一种选择,但您也可以轻松地滚动自己的这种格式版本。
一般情况下,我更喜欢压缩选项,因为文件大小要小得多。 XML可以很好地压缩,图像不会被扩展。
将单个XML文件与嵌入图像一起使用时,必须使用base64编码来保存图像。编码图像的大小约为原始大小的1.37 times larger。
但是,单个XML文件可能有利于进一步处理文档,例如,您可以直接使用它而无需另外解压缩作为XSL转换的输入文档。
1 OpenXML格式就是这方面的一个很好的例子。通常,文件存储在符合Open Packaging Conventions的zip包中。但是,还有一个可用的XML文件版本,so-called Flat OPC format(至少在Word 2007中)用作XSLT和其他文档处理步骤的输入/输出格式。
答案 1 :(得分:1)
为什么不使用Open XML Format SDK而不是创建自己的?{3}}? Open XML是Office 2007用于其文件(Excel,Word,Powerpoint等)的内容,它基本上是2)。