我正在使用 writeImageToSavedPhotosAlbum:metadata:completionBlock: 将图像保存到相机胶卷中(GPS 数据在传递给 metadata 的字典中)。但是图片方向不正确(因为我在拍照时翻转了设备)。
有另一个函数 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];
}
}
祝一切顺利,
a.
ALAsset
的元数据字典。获取ALAsset
后,以如下方式获取其元数据字典:myMetadataDictionary = [[myAsset defaultRepresentation] metadata]
。然后,设置方向:myMetadataDictionary[(NSString *)kCGImagePropertyOrientation] = orientation
,其中orientation
是 @Anomie 给出的整数之一。 - Tim Arnold