2012-01-23 4 views
0

내 문제는 이것입니다. -iPhone이 변형 된 UIImageView의 스크린 샷

저는 사용자가 자유롭게 회전 할 수있는 UIImageView를 가지고 있습니다.

이제이 새로 회전 된 이미지를 캡처 할 수 있기를 바랍니다.

개별보기의 스크린 샷을 찍을 수있는 아래 코드는 비 회전 상태의보기 스크린 샷을 반환합니다.

-(IBAction)captureScreen:(id)sender 
{ 
    UIGraphicsBeginImageContext(imgView.frame.size); 
    [imgView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil); 
} 

여기 회전을 유지하려면 어떻게해야합니까?

+0

당신이 구현 무엇 회전의 코드를 삽입 할 수있는 방법을 절약 할 수 있습니다 제안? –

답변

0

회전 된보기 자체가 아닌 회전 된보기가 포함 된보기에서 코드를 사용하십시오.

+0

감사합니다. Simon, 이것은 부분적으로 작동합니다 - 문제는 imageView가 회전 될 때 포함 된 뷰가 확대되어 이미지 뷰의 새 프레임을 반영하지 못해 자른 스크린 샷이 생기는 것입니다. 포함 된 뷰를 회전 된 imageView의 크기와 일치시키지 못하기 때문에 여기서는 매우 어리 석습니다. 이미지 뷰가 회전 할 때 포함 뷰의 경계 및 프레임 속성을 동적으로 설정해 보았습니다. 그러나 기쁨은 없었습니다 ...? –

+0

self.view를 사용하여 시도했지만 변환 된 뷰가 확대 된 경우 여전히 기쁨이 없습니다. http://stackoverflow.com/questions/15574845/how-do-i-take-a-screenshot-of-a-view-which- 내가 가진 has-transform – quantumpotato

0

시험해보세요.

UIGraphicsBeginImageContext(self.view.bounds.size); 
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil); 
    NSString *yourPath; 
    NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:yourPath]; 
    [UIImageJPEGRepresentation(viewImage, 1.0) writeToFile:jpgPath atomically:YES]; 
0

나는 UIImage 메서드를 통해 이미지를 회전한다고 가정합니다. 문제는 이미지 자체를 회전시키지 않고 그냥 옆으로 끌어 당기는 사람에게 말하고 있다는 것입니다.

난 그냥 실제로 코어 그래픽을 사용하여 이미지를 회전 한 다음 결과를