2012-10-25 3 views
0

보기를 이미지로 저장하는 방법에 대한 많은 스레드가 있습니다. 그리고 그들 모두 같은 대답을 줄 :원본 크기로보기를 이미지로 저장

CGRect rect = [myView bounds]; 
UIGraphicsBeginImageContextWithOptions(rect.size,YES,[[UIScreen mainScreen] scale]); 
CGContextRef context = UIGraphicsGetCurrentContext(); 
[myView.layer renderInContext:context]; 
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

내 문제는 내가 이미지가 포함 된 여러 합류 imageViews을 포함하는 뷰를 가지고있다. 나는 그 내부에있는 이미지의 크기에 해당하는 크기로 그 "홀더"보기를 저장하고 싶습니다. 따라서 400x400 이미지가 2면 나란히 있다면 400x800 이미지를 저장하고 싶습니다. 관계없이 표시되는 이미지는 30x60입니다.

위 코드는 화면에 표시된 내용 만 캡처하고 나머지는 남겨 둡니다. 예를 들어 콘텐츠 크기로 전체 scrollview를 얻고 싶다면 가능하지 않습니다.

어떤 아이디어가 있습니까?

답변

0

UIScrollView의 전체 contentSize 이미지를 얻으려면 this을 살펴보십시오.

+0

감사합니다. 하지만 게시 된 스레드는 문제를 해결하지 못합니다. UIGraphicsGetCurrentContext()는 화면의 내용 만 캡처합니다. 이를 사용하는 유일한 방법은 뷰를 화면에 맞추는 것이지만 해상도가 떨어집니다. 나는 대안이 필요해. –

+0

해당 스 니펫은 scrollview의 전체 내용을 캡처하여 UIImage에 저장합니다. 스크롤 뷰의 전체 contentSize가 아닌보기의 범위 만 캡처하는 것 같습니다. – Mat

+0

나는 그것을 완벽하게 이해합니다. 그래서 위의 질문을하고 있습니다. rect 크기를 설정하면 scrollview.contentSize로 말하면 실제로 그 크기의 이미지를 만들지 만 경계 외부의 모든 것은 공백이됩니다. UIGraphicsGetCurrentContext()는 화면 상에있는 것만 가져 오기 때문에 대안을 찾고 있다고 강조 할 수는 없습니다. –

관련 문제