与 UIActivitiViewController 共享图像(UIImage)的 PHAsset 丢失元数据(Exif 等)

Posted

技术标签:

【中文标题】与 UIActivitiViewController 共享图像(UIImage)的 PHAsset 丢失元数据(Exif 等)【英文标题】:PHAsset sharing the image(UIImage) with UIActivitiViewController lose metadata (Exif and etc) 【发布时间】:2016-06-27 10:00:53 【问题描述】:

在我的项目中,我与 UIActivityViewController 共享图像和视频阶段

但是对于图像,当我与 UIActivityViewController 共享 3.0MB 图像时,它会增长超过 6.0MB 并丢失元数据。

在我的来源

[[PHImageManager defaultManager] requestImageDataForAsset:asset
                                                  options:options
                                            resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) 
                                                if (completion)
                                                    completion(imageData);
                                            ];

当我检查 imageData 时,它仍然有元数据,但如果我将其转换为 UIImage 并尝试共享它,它就会丢失其元数据(Exif 等...)并调整大小。

有没有办法与元数据共享原始文件(= 没有数据丢失)?

谢谢。

【问题讨论】:

【参考方案1】:

我是这样解决的。

    使用 writeToFile

    将 NSData 图像保存到文件

    将图像共享为 NSUrl

那么元数据不会丢失。

【讨论】:

嗨,Kim,分享视频也有丢失元数据的问题。您是否知道不丢失视频文件共享的元数据? @srjohnhuang 也许这个答案对你有帮助***.com/questions/38196661/… 嗨,Kim,感谢您的提示。似乎苹果会破坏相机胶卷的元数据,同时直接从相机胶卷共享它。当前的解决方案就像您在链接中提到的那样,将视频复制到应用程序的文件夹中。

以上是关于与 UIActivitiViewController 共享图像(UIImage)的 PHAsset 丢失元数据(Exif 等)的主要内容,如果未能解决你的问题,请参考以下文章

=与==&与&&| 与 || 的区别

与 0 进行比较与与某个值进行比较是不是更快?

三.工具与市场-债券与债务股票与公司

RESTfulREST 与 RESTful 理解与实践

RESTfulREST 与 RESTful 理解与实践

RESTfulREST 与 RESTful 理解与实践