Vous tentez de faire une capture d'écran lorsque l'utilisateur est en mode Appareil photo et que l'utilisateur prend une photo. J'ai une application avec plusieurs onglets. Dans l'un d'eux, l'utilisateur lance la caméra. J'utilise CameraOverViewController pour créer un bouton personnalisé pour prendre une photo [picker takePicture]. Lorsque cette photo est prise, j'ai également une capture d'écran de l'image en utilisant des méthodes standard. Tout cela fonctionne très bien dans une application de test sans onglets, dès que j'introduis les onglets, il retourne juste un carré noir. Je me rends compte qu'il est susceptible de faire avec la bonne vue, je ne peux pas comprendre quelle vue obtenir.iPhone Capture d'écran de UIImagePickerController Affichage - Toujours noir si l'application 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();
}
Toute aide est appréciée.
merci.
Devrait mentionner si j'utilise 'self.view.layer' il renvoie une image de l'interface, pas de l'image. Je ne rejette pas la vue avant d'avoir essayé la capture d'écran. Et cela fonctionne quand ce n'est pas dans un onglet. –
Avez-vous déjà la solution? –