在我的应用中,我希望用户能够下载离线地图内容。
所以我(压缩)将我的所有瓷砖移动到一个zip文件中。 (我使用0压缩) 结构如下:{z / x / y.jpg}
+0
+-0
+--0.jpg
+1
+-1
+--0.jpg
+2
+-2
+--1.jpg
所以基本上会有很多文件用于缩放级别0-15。 (我的测试区约有120,000块瓷砖)。
我现在正在使用https://github.com/mattconnolly/ZipArchive,但之前也尝试了https://github.com/soffes/ssziparchive,两者都很慢。大概需要5个!!在我的iPhone 5S上分钟解压缩文件。
有什么方法可以加快速度吗?还有什么其他的可能性,而不是在一个大的zip文件中下载瓷砖?
编辑: 如何在不需要解压缩的情况下将整个文件夹的内容快速下载到我的iPhone?
感谢任何帮助!
答案 0 :(得分:1)
JPG很少使用zip进行压缩 - 根据定义,它们已经被压缩了。你应该做的是创建你自己的二进制文件格式,并将你需要的任何元数据与图像(你应该使用非常低质量的数字进行编码,以减小其大小)。
当您下载这些文件时,您可以打开它们,快速将它们读入内存,并根据需要提取数据或图像。
如果您的额外数据是二进制(而不是文本),这将非常快并且几乎没有开销。
PS:我刚刚在PHP Plist class
上绊倒了答案 1 :(得分:0)
如果有人想知道我是如何结束的: 对于我的用例(MapTiles),我现在使用MBTiles而不是压缩图像。这是一个大数据库文件,如果使用FMDB,超级易读。没有任何需要拆包......
即使我将图像全部放在一个没有任何压缩的二进制文件中,“提取”仍然需要永远!