我正在使用writeImageToSavedPhotosAlbum:metadata:completionBlock:將圖像保存到相機膠捲(GPS數據在傳遞到元數據的字典中)。然而,圖片是錯誤的(因爲我在拍照時翻轉設備)。如何在iPhone上使用EXIF(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];
}
}
最良好的祝願,
一個。
謝謝你的回答,你太棒了! UIImageOrientation,就是這麼簡單......找不到任何針對kCGImagePropertyOrientation和UIImageOrientation的單一解決方案。我只是喜歡這個板子! – akashic
失態,這是有道理的,但在OP的代碼中他應該在哪裏實際設置,以及如何? OP必須在某處爲kCGImagePropertyOrientation設置一個值,對吧? –
@BenjaminWheeler需要修改你的'ALAsset'元數據字典。一旦你有了'ALAsset',以這種方式獲取元數據字典:'myMetadataDictionary = [[myAsset defaultRepresentation] metadata]'。然後,設置方向:'myMetadataDictionary [(NSString *)kCGImagePropertyOrientation] = orientation',其中'orientation'是上面@Anomie給出的整數之一。 –