我试图在我的一个应用程序中重复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仍适用于任何图像。
答案 0 :(得分:0)
好的,问题已经解决了。问题是由于编辑的图像有“错误”的方向。根据Apple的文档,编辑后的图像必须正确定位(例如根据其方向标签),并且Orientation标签必须设置为1,显然CIImage在使用.oriented方法后仍然没有做。