2009-10-13 1 views
2

사용자가 카메라 모드이고 사용자 조회수가 사진을 찍을 때 스크린 샷을 찍으려고합니다. 몇 가지 탭이있는 응용 프로그램이 있습니다. 그 중 하나에서 사용자는 카메라를 시작합니다. CameraOverViewController를 사용하여 [picker takePicture] 사진을 찍을 사용자 지정 단추를 만듭니다. 이 그림을 찍을 때 표준 방법을 사용하여 그림의 스크린 샷을 찍습니다. 이 모든 탭을 테스트 응용 프로그램에서 탭을 소개하자마자 검은 색 사각형 그냥 반환합니다. 나는 그것이 올바른 관점을 얻는 것과 관련이 있다는 것을 깨달았습니다. 나는 어떤 관점을 얻을지 알 수 없습니다.iPhone Take Screenshot of UIImagePickerController보기 - TAB 앱인 경우 항상 검은 색

// the view loaded in the tab view 
@interface CameraTestViewController : UIViewController |UIImagePickerControllerDelegate, UINavigationControllerDelegate| 

UIImagePickerController *picker 

.m 
- (void) setUpCamera : (id) sender { 
picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
picker.allowsEditing = NO; 
picker.showsCameraControls = NO; 
picker.wantsFullScreenLayout = YES; 
picker.cameraViewTransform = CGAffineTransformScale(picker.cameraViewTransform, CAMERA_SCALAR, CAMERA_SCALAR); 

CameraOverViewController *createOverlay = [[CameraOverViewController alloc] initWithNibName:@"CameraOverViewController" bundle:nil];  
[createOverlay mainView:self];    
[picker setCameraOverlayView:createOverlay.view]; 

[self presentModalViewController:picker animated:YES];  
[picker release]; 

} 

- (void) snapThePicture { 
    [picker takePicture]; 
} 

// TAKE SCREEN SHOT AS WELL. WORKS WITH NO TABS 
- (void)imagePickerController:(UIImagePickerController *)pickerHere didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    // tried many, many things. self.view.layer, etc 
    CGRect screenRect = CGRectMake(0, 0, 320, 480); 
    UIGraphicsBeginImageContext(screenRect.size); 
    [self.picker.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 

     // UIIMAGE ALWAYS A BLACK RECTANGLE OF RIGHT SIZE. WOULD WORK IF NOT IN TAB VIEW 

     UIImage *screenImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
} 

도움을 주시면 감사하겠습니다.

감사합니다.

+0

'self.view.layer'를 사용하면 그림이 아닌 인터페이스 그림이 반환됩니다. 스크린 샷을 얻으려고 할 때까지보기를 닫지 않습니다. 탭보기가 아닐 때 작동합니다. –

+0

아직 해결책이 있습니까? –

답변

1

theTabView.view.layer? 그것은 나를 위해 일한으로

+1

아니요. 그래도 카메라가보고있는 것이 아니라 인터페이스의 사진 만 찍습니다. 이 문제를 해결할 수 있다면 iPhone 용 코딩 기능이있는 현재 성능 문제 영역 인 카메라 이미지의 초고속 버전을 얻을 수 있습니다. –

-1

어쩌면이 당신을 도울 수 있습니다

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {  

UIImage *img = [info objectForKey:UIImagePickerControllerOriginalImage ]; 
NSData *mydata= UIImageJPEGRepresentation(img , 1); 
UIImageWriteToSavedPhotosAlbum(img, self, nil, nil); 

}이 기본적으로 당신이 당신의 스냅 샷 및 포토 앨범에 저장 한 것으로

. ciao!

+0

어떻게 그 해결책입니까? 그것은 전체 이미지입니다 ... OP는 분명히 이미지를자를 수있는 솔루션을 요구하고 있습니다 (CGRect screenRect = CGRectMake (0, 0, 320, 480); UIGraphicsBeginImageContext (screenRect.size);) – Kevin

관련 문제