由于保存PHAsset
时使用的调整数据可以完全由用户定义,因此是否存在任何内存大小限制?
例如,我可以在其中存储类似蒙版或图层(基本上是多个位图)的内容吗?
答案 0 :(得分:1)
documentation for PHAdjustmentData.init
笔记(强调我的):
由于照片限制了调整数据的大小,因此您应该使编辑信息简短且具有描述性。 请勿使用图片数据来描述编辑,而只保存重新创建编辑所需的最少信息。
您的应用必须为data参数提供非空的NSData对象。如果您无法提供相关数据来描述编辑,则可以传递编码NSUUID对象的数据。
换句话说,对于根据实际新像素编码编辑的Photoshop风格文件,调整数据不是。请记住,调整数据的主要思想是,您可以使用它来恢复,重建和更改上次用户编辑中执行的任何工作。
调整数据最常用于说"模糊过滤器@ 20px +变暗20%+变焦到(100,100,300,400)"。对于更复杂的编辑,您必须获得更多创意 - 例如,对于用户使用画笔绘制的效果,您可以在很多地方记录画笔笔划(加上画笔半径和任何其他参数)比您用来存储位图的数据少。
如果没有这一切,如果您的编辑只能使用太大而无法适应调整数据的数据进行描述,请注意Apple提示使用UUID - 您可以将数据存储在照片外部,并使用调整数据存储一个密钥,使您可以在外部存储中查找编辑。 (当然,您必须确保您的外部存储位于iCloud Photo Library同步的所有位置,并且如果您无法访问它,则可以优雅地退回,等等。 ..)
哦,至于上限是什么...... Apple可能不会发布限制,因为它可能会因设备,iCloud帐户状态,操作系统版本或更改而发生变化其他一些因素。因此,即使您通过实验发现了限制,也可能并非总是如此。
答案 1 :(得分:0)
我做了一些测试,似乎 2 MB 就是答案。尽管如此,有一份官方声明会很好......