私は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
Anomie、それは意味がありますが、OPのコードでは実際に設定を行うべきですか? OPは実際にkCGImagePropertyOrientationの値をどこかで設定しなければなりませんか? –
@BenjaminWheelerはあなたの 'ALAsset'のメタデータ辞書を変更する必要があります。 'ALAsset'を取得したら、このようにしてメタデータ辞書を取得します:' myMetadataDictionary = [[myAsset defaultRepresentation] metadata] '。次に、方向を設定します: 'myMetadataDictionary [(NSString *)kCGImagePropertyOrientation] = orientation'、ここで' orientation'は上記の@Anomieで与えられた整数の1つです。 –