首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在url保存图像时出现PHPhotoLibrary错误

在url保存图像时出现PHPhotoLibrary错误
EN

Stack Overflow用户
提问于 2015-02-05 15:57:44
回答 2查看 12K关注 0票数 6

我在PHContentEditingOutput提供的url上创建了一个图像。当我将数据加载到UIImage并像这样保存它时,它就能工作了。

代码语言:javascript
复制
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
    NSData *data = [NSData dataWithContentsOfURL:contentEditingOutput.renderedContentURL]
    UIImage *image = [UIImage imageWithData:data];
    [PHAssetChangeRequest creationRequestForAssetFromImage:image];
} completionHandler:^(BOOL success, NSError *error) {
     ...
}];

但是当我尝试使用url时,它失败了:

代码语言:javascript
复制
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
    [PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:contentEditingOutput.renderedContentURL];
} completionHandler:^(BOOL success, NSError *error) {
     ...
}];

错误:

错误Domain=NSCocoaErrorDomain代码=-1“操作无法完成。(可可错误-1。)

更新:

当我试图保存一个修改时,同样的错误。

代码语言:javascript
复制
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
    PHAssetChangeRequest *request = [PHAssetChangeRequest changeRequestForAsset:asset];
    request.contentEditingOutput = contentEditingOutput;
} completionHandler:^(BOOL success, NSError *error) {
     ...
}];

该方法适用于视频(creationRequestForAssetFromVideoAtFileURL:),但不适用于图像。哪里出了问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-06 09:15:09

问题在于文件格式。我试着编辑PNG截图,但renderingContentURL一直都是renderingContentURL。起初,我认为这是一个错误,但根据文献资料的说法,这是正确的行为。

renderedContentURL

阅读此属性以找到用于写入已编辑的资产内容的URL。然后,如果编辑照片资产,将修改后的照片图像写入JPEG格式的文件中。如果编辑视频资产,则将视频导出到QuickTime (.mov)文件中。

解决方案是用函数转换图像。

代码语言:javascript
复制
NSData *UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality);
票数 7
EN

Stack Overflow用户

发布于 2018-12-21 20:13:59

在传递元数据时,每当定向(在图像元数据中)不是CGImagePropertyOrientationUp时,我也会一致地显示这个问题。

renderedContentURL文档中也说明了这一点:

编辑后的资产内容必须包含(或“烘焙”)资产的预期方向。也就是说,您在输出图像或视频文件中写入的定向元数据(如果有的话)必须声明“向上”方向,而在没有方位元数据的情况下,图像或视频数据必须向上显示。

对于图像,需要更新以下元数据键(同时图像数据也是旋转的):

·kCGImagePropertyTIFFDictionary \ kCGImagePropertyTIFFOrientation

·kCGImagePropertyOrientation

·有可能,kCGImagePropertyIPTCImageOrientation

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28348450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档