2012-09-13 3 views
0

내 iOS 앱이 인터넷에서 일부 이미지를 다운로드하고 화면에 표시합니다 (iPhone 세로 레이아웃). 이 이미지 중 일부는 더 커 보이기보다 넓습니다.이 경우 이미지가 화면에 나타나면 화면이 부서져 보입니다 (iPhone의 너비에 맞게 축소 된 와이드 스크린 TV의 그림을 상상해보십시오). 내가하고 싶은 것은 이미지의 너비가 이미지의 높이보다 넓을 때마다 (가로 레이아웃 모드로) 시계 방향으로 90도 회전시켜 앱의 도큐멘트 폴더에 저장 한 다음 프리젠 테이션을하고 싶습니다. 이렇게하면 와이드 스크린 TV (예 :)의 그림이 90도 회전 된 것처럼 보이지만 이미지 종횡비가 완전히 파괴되지는 않습니다.iOS - 이미지 또는 그림 회전

여러 가지 복잡한 이유 때문에 내 앱의 가로 레이아웃을 사용할 수 없습니다. 너무 많은 다른 부작용이 있습니다. 그래서 이것은 내가 작성한 코드입니다.

UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]]; 

    CGFloat width = image.size.width; 
    CGFloat height = image.size.height; 

    if(width > 1.2*height) { 
     NSLog(@"rotate the image"); 
     CGImageRef imageRef = [image CGImage]; 
     image = [UIImage imageWithCGImage:imageRef scale:1.0 orientation:UIImageOrientationLeft]; 
    } 

그런 다음 이미지를 App의 문서 폴더에 저장합니다. 그런 다음 문서 폴더에 저장된 이미지 파일을 읽고이 이미지를 여는 새 UIViewController가 열립니다. 문제는 이미지가 전혀 회전하지 않은 것처럼 보입니다. 회전없이 원본과 동일한 방식으로 나타납니다. 위의 코드는 콘솔에서 NSLog "이미지 회전"을 참조하기 때문에 수행해야하는 작업을 수행하려고합니다. 그러나 어떻게 든이 이미지는 회전 된 이미지로 저장되지 않습니다.

이 문제는 어떻게 해결해야합니까?

편집 : 코드 내 이미지를 저장하기 :

다음 웹 사이트의 솔루션은 궁극적으로 나를 위해 일한
NSString *documentsDirectory = [NSHomeDirectory()  stringByAppendingPathComponent:@"Documents"]; 

    // Create image name 
    NSString *path = [@"" stringByAppendingFormat:@"%@%@", @"image", @".png"]; 

    // Create full image path 
    path = [documentsDirectory stringByAppendingPathComponent:path]; 

    path = [NSString stringWithFormat:@"%@", path]; 

    // Write image to image path 
    NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(image)]; 
    [data1 writeToFile:path atomically:YES]; 
+0

당신은 구원의 코드를 추가 할 수 있습니까? 또한, 당신은 몇 가지가 너무 [여기] 컨텍스트를 사용하고, 일부는 당신처럼 doung하는 CGImageRef –

+0

를 사용하여 무엇 [1] [1] : http://stackoverflow.com/questions/1315251/how -to-rotate-a-uiimage-90-degrees –

+0

나는 이것과 비슷한 문제를 겪었는데, 여기에 관한 나의 포스트가있다. 어쩌면 해결책을 다시 확인하는 데 도움이 될까? http://stackoverflow.com/questions/10600613/ios-image-orientation-has-strange-behavior – Boeckm

답변