Сохранить отредактированное фото рядом с захваченным

Я пытаюсь повторить пример из документации 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 по-прежнему работает с любыми изображениями.


person igor    schedule 20.05.2018    source источник
comment
Не могли бы вы добавить журналы консоли, если они у вас есть?   -  person Karthick Ramesh    schedule 21.05.2018
comment
единственный вывод, который я получаю: Необязательный (домен ошибки = код NSCocoaErrorDomain = -1 (null)   -  person igor    schedule 21.05.2018
comment
Я пытаюсь добиться того же. Как вы генерируете originalJPEGFileURL ? Вы сохраняете захваченный UIImage в фотопленку и читаете его обратно при обратном вызове сохранения?   -  person Nicolas Miari    schedule 03.02.2019


Ответы (1)


Хорошо, проблема решена. Проблема заключалась в том, что отредактированное изображение имело «неправильную» ориентацию. Согласно документации Apple, отредактированное изображение должно быть правильно ориентировано (например, в соответствии с его тегом ориентации), а для тега ориентации должно быть установлено значение 1, что, по-видимому, CIImage не делает даже после использования метода .orient.

person igor    schedule 22.05.2018