【发布时间】:2013-01-31 11:14:22
【问题描述】:
我想在临时文件夹中保存带有一些元数据更改的图像,而不重新编码实际的图像数据。
我发现能够做到这一点的唯一方法是ALAssetsLibrary/writeImageDataToSavedPhotosAlbum:metadata:completionBlock:,但是,这个方法会将图像保存到照片库中。相反,我想将图像保存到临时文件夹(例如通过电子邮件共享,而不填充照片库)。
我尝试过使用CGImageDestinationRef (CGImageDestinationAddImageFromSource),但它只能使用解码图像创建,这意味着它在保存时会重新编码(测试,像素字节看起来不同)。
除了使用CGImageDestinationRef之外,还有其他可用于iOS的方法/类可以将图像数据与元数据一起保存吗?也欢迎提出解决方法的建议。
【问题讨论】:
-
您能否详细说明一下 - 您从哪里获取图像(相机?其他?)
-
没关系,我把它们当作未解码的
NSData(通常从 ALAsset 读取)。 -
考虑到您已经从某个来源读取,它已经被编码,更新了元数据,如果您只是将它写入文件,它会如何失败?你知道,
[data writeToFile: atomically:]。只是想知道。 -
@NandeepMali 如果我将其直接写入文件,我将无法更改元数据。我基本上有 1 个
NSData(未解码的图像)对象和 1 个NSDictionary(元数据)对象,我需要以某种方式合并在一起而不改变图像像素。 -
啊,我明白了。您是否有正在使用的特定图像格式?
标签: ios objective-c image metadata