保存已编辑的照片和捕获的照片

时间:2018-05-20 21:01:22

标签: ios iphone editing photos

我试图在我的一个应用程序中重复Apple的文档示例,即我'捕获照片,编辑照片并希望将它们与一些调整数据一起保存在一个资产中。 Apple提供以下代码:

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{

    // Make a change request for adding an asset.
    PHAssetChangeRequest *changeRequest =
            [PHAssetChangeRequest creationRequestForAssetFromImageAtFileURL:originalJPEGFileURL];

    // Make a content editing output for use with the change request.
    PHObjectPlaceholder *placeholder = changeRequest.placeholderForCreatedAsset;
    PHContentEditingOutput *contentEditingOutput =
            [[PHContentEditingOutput alloc] initWithPlaceholderForCreatedAsset:placeholder];

    // Apply content adjustments to the newly created asset.
    contentEditingOutput.adjustmentData = adjustmentData;
    [adjustedJPEGData writeToURL:contentEditingOutput.renderedContentURL atomically:YES];
    changeRequest.contentEditingOutput = contentEditingOutput;

} completionHandler:^(BOOL success, NSError *error) {
    if (!success) NSLog(@"Can't create asset: %@", error);
}];

不幸的是,我经常收到错误代码-1。当资产刚刚创建时,是否有人成功地将编辑过的图像与原始图像一起存储了?

更新1:仅当资产包含深度信息时才会发生这种情况: - /

更新2:嗯,事情变得更糟。我已经在我的iPhone上尝试了Apple的应用程序,名为UsingPhotosFramework,它也不起作用。我还注意到我可以使用照片进行编辑,一旦我对该资产进行了一些编辑,包括我的和Apple的应用程序工作。当资产恢复原点(意味着不再存在调整数据或fullSizePhoto)时,两个应用程序都会停止工作。 Snapseed仍适用于任何图像。

1 个答案:

答案 0 :(得分:0)

好的,问题已经解决了。问题是由于编辑的图像有“错误”的方向。根据Apple的文档,编辑后的图像必须正确定位(例如根据其方向标签),并且Orientation标签必须设置为1,显然CIImage在使用.oriented方法后仍然没有做。