【发布时间】:2010-01-16 00:15:38
【问题描述】:
我继承了一个 OpenGL iPhone 应用程序代码,其中包含一些大的 PNG 文件(例如,sunshine.png,10,000 像素 x 80 像素)和每个 png 对应的 PLIST 文件(例如,ImageData/sunshine.plist)。
问题是,当我替换 PNG 文件时,应用程序并没有拾取它们,显然是因为它并没有真正读取 PNG,只是相应的 PLIST 图像数据文件。这些 plist 文件是使用 OpenGL 库进行纹理映射的。我的怀疑是 PLIST 包含要渲染的每个图块的一些二进制编码,并且原始图像已被分割成图块并以某种方式存储在 .plist 文件中。问题是,我不知道如何重新生成新的 PLIST 文件!
我尝试将 PLIST 文件设为 0 字节,或者通过 NSData 使用 UTF8Encoding 对其进行解密,但只收到垃圾。已确认未使用 PVRTC 编码。任何关于这些 PLIST 文件格式的含义或来源的想法将不胜感激!我无法更新这个应用程序,因为它的主要功能是显示大的、可滚动的图像。
sunshine.plist 文件格式如下:(数据缩短)
<dict>
<key>0</key>
<data>
12LXYpValWKVYtdilWLXYpVi12KVWpVi12KVWpVi12LXYtdilVqVYpVi12KVYtdilWLX
YpValWLXYpValWLXYtdi12KVWpVilWLXYpVi12KVYtdilVqVYtdilVqVYtdi12LXYpVa...
</data>
<key>1</key>
<data>...</data>
</dict>
在 Xcode plist 编辑器中,以下是其中一个字典值的外观:(数据已缩短)
<d762d762 955a9562 9562d762 9562d762 9562d762 955a9562 d762955a 9562d762 d762d762 955a9562 9562d762 9562d762 9562d762 955a9562 d762955a 9562d762 d762d762 955a9562 9562d762 9562d762 9562d762 955a9562 d762955a 9562d762 d762d762 955a9562 9562d762 9562d762 9562d762 955a9562 d762955a 9562d762 73ce31c6 31c673ce 73ce31c6 31c631c6 31c631c6 73ce31c6 31c673ce 31c631c6 73ce31c6 31c673ce 73ce31c6 31c631c6 31c631c6 73ce31c6 31c673ce 31c631c6 73ce31c6 31c673ce 73ce31c6 31c631c6 31c631c6 73ce31c6 31c673ce 31c631c6 73ce31c6 31c673ce 73ce31c6 31c631c6 31c631c6 73ce31c6 31c673ce 31c631c6 e5f6e7fe e5f6e5f6 a5f6e5fe e5fee7fe e7fee5f6 e5fee7fe e5f6e7fe ...>
感谢 StackOverflow 社区!
【问题讨论】: