2014-03-18 1 views
0

내 영역의 스냅 샷을 찍어 새 UIView로 설정하고 있습니다. UIImageView에 추가하기 위해 UIView를 UIImage로 어떻게 변환합니까?

UIView *currView = [self.view resizableSnapshotViewFromRect:mp.moviePlayer.view.frame afterScreenUpdates:YES withCapInsets:UIEdgeInsetsZero]; 
    [currView setFrame:CGRectMake(0, 0, 204, 128)]; 

그때 나는이를 사용하여 UIIamgeView 이미지 설정하려고 :

[image2 setImage:[self getUIImageFromThisUIView:currView]]; 

-(UIImage*)getUIImageFromThisUIView:(UIView*)aUIView 
{ 
    UIGraphicsBeginImageContext(aUIView.bounds.size); 
    [aUIView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return viewImage; 
} 

을하지만 아무것도에있는 UIImageView의 이미지를 설정하지 않는 이유는 무엇입니까? 사전

+0

표준 UIKit 컨트롤 (일반적으로 1 개의 w ould는 'UIGraphicsBeginImageContextWithOptions'를 사용하여 망막 해상도 이미지를 캡처하기 위해 0의 축척을 사용합니다.)하지만 MPMoviePlayerController를 사용하면'thumbnailImageAtTime'을 사용해야합니다. http://stackoverflow.com/questions/13855340/is-there-any-way-to-any-way-to-take-a-screenshot-when-mpmovieplayercontroller-is-playing – Rob

답변

0

보기의 이미지를 만들기 위해 내가 사용 카테고리에서 감사합니다, 예를 들어

UIView+Snapshot.h
@interface UIView (Snapshot) 

- (UIImage *) getSnapshot; 
@end 
UIView+Snapshot.m
#import "UIView+Snapshot.h" 

@implementation UIView (Snapshot) 

- (UIImage *) getSnapshot 
{ 
    UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, self.window.screen.scale); 

    [self drawViewHierarchyInRect:self.frame afterScreenUpdates:YES]; 
    UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    return snapshotImage; 
} 


@end 

그리고 헤더를 추가 : 올바른 기술의

#import "UIView+Snapshot.h" 

UIImage *image = [self.view getSnapshot]; 
+1

이것은 좋은 작은 카테고리입니다 (단, iOS 7 'drawViewHierarchyInRect' 메쏘드는 이전 iOS 버전에서는 작동하지 않을 것입니다.) 그러나 이것은 표준'UIKit' 컨트롤로 동작하는 스냅 샷을 만드는 전형적인 시도를 무효로하는'MPMoviePlayerController'에 고유 한 문제를 해결할 지 확신하지 못합니다. – Rob

관련 문제