2010-07-07 5 views
2

현재 ipad-view의 스냅 샷을 찍어야합니다. 이보기는 비디오를로드하고 재생합니다. 거의 잘 작동하는이 기능을 발견했습니다.런타임시 뷰의 스냅 샷을 생성해야합니다.

- (UIImage*)captureView:(UIView *)view { 
    CGRect rect = [[UIScreen mainScreen] bounds]; 
    UIGraphicsBeginImageContext(rect.size); 
    CGContextRef context = UIGraphicsGetCurrentContext();  
    [view.layer renderInContext:context];  
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext();  
    return img; 
} 

(행 출처 : LINK)

문제는 재생중인 동영상의 현재 프레임 만 볼 수는 있지만 비디오 콘텐츠없이 캡처되지 않는다는 것이다. 이미지를 저장하기 전에 디스플레이 또는 다른 것을 업데이트하는 것을 잊었습니까? 최신 화면 값을 읽는 특별한 기능이 있습니까?

시간과 도움에 감사드립니다.

+0

참조 : 다음 NSImage 방법으로 CGImageRef에서 NSImage를 만들 수 있습니다 이 질문에 대한 답변 : http://stackoverflow.com/questions/3129352/need-to-capture-uiview-into-a-uiimage-including-all-subviews – Logachu

답변

0

UIGetScreenImage() 함수를 사용해 보셨습니까?

개인용이지만 Apple에서 사용할 수 있으므로 앱을 사용하더라도 앱 스토어에 대해 유효성이 검사됩니다.

당신은 단지 프로토 타입을 선언 할 필요가 있기 때문에 컴파일러는 불평하지 않습니다

CGImageRef UIGetScreenImage(void); 

참고 :

- (id)initWithCGImage: (CGImageRef)cgImage size:(NSSize)size; 
+0

여러 개발자의 앱이 해당 기능을 사용하여 거부되었습니다. 어떤 사람들은 붙잡히고, 다른 사람들은 잡히지 않습니다. 참조 : http://stackoverflow.com/questions/1531815/takepicture-vs-uigetscreenimage –

+0

내가 잘못하지 않은 경우 3.2+ SDK는 모든 인스턴스에서 비디오 스냅을 가져 오는 공용 메서드를 제공하는 MPMoviePlayerController를 가지고 있습니다 . 만약 당신이 완전한보기와 함께 ScreenShot을 찾고 있다면 이것을 무시하십시오. – RVN

관련 문제