gpt4 book ai didi

iphone - 为什么图像数据在plist字典中?

转载 作者:行者123 更新时间:2023-12-03 20:59:34 25 4
gpt4 key购买 nike

我继承了一个 OpenGL iPhone 应用程序代码,其中包含一些大型 PNG 文件(例如,sunshine.png,10,000 px x 80 px)以及每个 png 的相应 PLIST 文件(例如,ImageData/sunshine.plist)。

问题是,当我替换 PNG 文件时,应用程序不会拾取它们,显然是因为它并没有真正读取 PNG,而只是读取相应的 PLIST 图像数据文件。这些 plist 文件使用 OpenGL 库进行纹理映射。我怀疑 PLIST 包含要渲染的每个图 block 的一些二进制编码,并且原始图像已被分割成图 block 并以某种方式存储在 .plist 文件中。问题是,我不知道它是什么,因此如何重新生成新的 PLIST 文件!

我尝试将 PLIST 文件设为 0 字节,或者通过 NSData 使用 UTF8Encoding 对其进行解密,但只收到垃圾。已确认未使用 PVRTC 编码。如果您知道这些 PLIST 文件格式的含义或来源,我们将不胜感激!我无法更新这个应用程序,因为它的主要功能是显示大的可滚动图像。

这是sunshine.plist文件格式:(数据缩短)

<dict><br/>
<key>0</key><br/>
<data><br/>
12LXYpValWKVYtdilWLXYpVi12KVWpVi12KVWpVi12LXYtdilVqVYpVi12KVYtdilWLX
YpValWLXYpValWLXYtdi12KVWpVilWLXYpVi12KVYtdilVqVYtdilVqVYtdi12LXYpVa...
</data><br/>
<key>1</key><br/>
<data>...</data><br/>
</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 社区!

最佳答案

听起来原始程序员使用了类似的东西......

UIImage *anImage;
...
NSData *imgData=UIImagePNGRepresentation(anImage);

...然后他们存储了 imgData在 NSDictionary 中并将其写入一个文件。

要反转它,您需要加载字典,然后提取各个数据对象。然后您可以使用从数据创建图像,如下所示:

NSDictionary *imgDict=[NSDictionary dictionaryWithContentsOfFile:plistFilePath];
NSData *imgData=[imgDict valueForKey:@"keyForImage"];
UIImage *newImg=[UIImage imageWithData:imgData];

UIImage可以从数据中猜出文件格式。图像的键是 plist <key>1</key> 中的值。键是 NSString。

获得 UIImage 后,您可以将其转换为其他格式。

<小时/>

编辑01:

您可能会有所帮助:Archives and Serialization Programming for Cocoa

关于iphone - 为什么图像数据在plist字典中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2075601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com