2014-04-23 9 views
0

카메라를 사용하여 IOS 응용 프로그램에서 사진을 찍습니다. 그것이 작동하는 유일한 문제는 사진을 찍을 때 사용자가 장치를 들고 있었는지 파악하려고 할 때입니다.UIImageOrientation/UIImagePickerController

올바른 방법으로 이미지를 표시 할 수 있고 거꾸로되어 있지 않거나 90도 회전 할 수 있다면 훨씬 좋습니다.

theImage.imageOrientation is always equal to UIImageOrientationUp 

내가 무엇을 놓치고 :

솔루션을 찾고 내가있는 UIImage의 imageOrientation 그러나 실제로 사용해야한다는 사실에 날 리드?

나는 다양한 연구와 실험을했지만 아무런 변화가 없었습니다. 이 시점에서 더 이상 코드가 표시되지 않습니다. 간단한 이유 때문에 문제를 찾는 데 도움이되는 부분을 알 수 없습니다.

답변

1

나는 혼자 해결책을 찾을 수 있었기 때문에. 다른 사람에게 유용 할 수도 있기 때문에 여기에 넣었습니다.

저장된 이미지의 "imageOrientation"필드의 값을 보면 (실제로 내가했던 것처럼) 실제로는 항상 UIImageOrientationUp으로 표시됩니다. 반면에 imagePickerController : didFinishPickingMediaWithInfo : 내부를 살펴보면 훨씬 의미가 있습니다.

- (void)imagePickerController:(UIImagePickerController *)picker 
didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    …… 
    UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage]; 
    …… 

    if ((image.imageOrientation==UIImageOrientationLeft)|| 
     (image.imageOrientation==UIImageOrientationRight)|| 
     (image.imageOrientation==UIImageOrientationDown)) { 
     UIGraphicsBeginImageContext(image.size); 
     [image drawAtPoint:CGPointMake(0.0, 0.0)]; 
     image=UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
    } 

    NSData *mediaData = UIImagePNGRepresentation(image); 
    …… 
} 

을 그리고 난 내 응용 프로그램에서 나중에 사용할 때 다음 내 사진이 제대로 방향을 보여줍니다

좀 더 많은 연구와 실험 후, 나는 방법 그렇게 찾고 끝났다.