Я использую writeImageToSavedPhotosAlbum:metadata:completionBlock: для сохранения изображений в рулоне камеры (данные GPS передаются в словаре в метаданные). Однако картинки дезориентированы (поскольку я переворачиваю устройство во время съемки).
Есть еще одна функция writeImageToSavedPhotosAlbum: orientation: completionBlock: но я не смогу передавать данные EXIF.
В соответствии с документацией существует свойство kCGImagePropertyOrientation для установки ориентации вручную, но у меня возникают проблемы с обнаружением текущей ориентации устройства во время снимая изображение и сохраняя его.
Кто-нибудь добился сохранения изображения с данными EXIF и правильной ориентацией? Любая помощь будет очень оценена.
Здесь мой код:
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
[self dismissModalViewControllerAnimated:YES];
[imageView setImage:image];
if(sourceCamera) {
//EXIF and GPS metadata dictionary
(...)
//saving image
ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
[al writeImageToSavedPhotosAlbum:[image CGImage]
metadata:dict
completionBlock:^(NSURL *assetURL, NSError *error) {
if (error == nil) {
NSLog(@"saved");
} else {
NSLog(@"error");
}
}];
[al release];
}
}
С наилучшими пожеланиями,
а.