Метаданные теряются при сохранении фотографии с помощью PHPhotoLibrary

Раньше я сохранял фотографию в фотопленку с помощью writeImageToSavedPhotosAlbum:metadata:completionBlock ALAssetLibrary, но теперь это устарело в iOS 9.0, поэтому я переключился на версию PHPhotoLibrary, которая выглядит как

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
    [PHAssetChangeRequest creationRequestForAssetFromImage:image];
}completionHandler:^(BOOL success, NSError *error) {
    if (success){
        NSLog(@"Image Saved!");
    } else {
        NSLog(@"Error: %@", error);
    }
}];

Это сохраняет само изображение, но теряет метаданные (exif ect), и я не могу найти никаких исправлений, как сохранить эти данные при сохранении фотографии. Любая помощь будет оценена по достоинству. ТИА


person Mitch D    schedule 05.07.2016    source источник
comment
Пытался выяснить, как удалить данные exif без перезаписи исходников. Так получилось :) Проблема одного человека - решение другого.   -  person Hanny    schedule 18.11.2016


Ответы (1)


Я думаю, метод

creationRequestForAssetFromImage:(UIImage *)image;

сохраняет только данные изображения. Он не включает метаданные.

Если вы хотите сохранить изображение с метаданными, вы можете сделать это, выполнив следующий шаг.

Сначала сохраните изображение во временной папке и укажите путь к нему как NSURL. Затем вызовите метод

creationRequestForAssetFromImageAtFileURL:(NSURL *)fileURL;

с NSURL вы получаете первый шаг.

person M.Masa    schedule 06.07.2016
comment
@MitchD Извините. Я не знаю точного кода, чтобы делать то же самое в Android. Но это возможно, просто сохраните файлы в хранилище и зарегистрируйте их в медиа-магазине. - person M.Masa; 10.07.2016
comment
Для iOS 9+ вы можете пропустить шаг промежуточного файла и выполнить let request = PHAssetCreationRequest.forAsset(), а затем request.addResource(with:data:options:), используя данные изображения, к которым вы добавили свои метаданные, все в блоке PHPhotoLibrary performChanges. - person Undrea; 18.04.2017
comment
@Undrea Спасибо за информацию. Я попробую ваше предложение. - person M.Masa; 05.07.2017
comment
Итак, можно ли использовать creationRequestForAssetFromImageAtFileURL:(NSURL *)fileURL; для записи exif в визуализированный uiimage? - person Reza.Ab; 26.01.2018