iPhone SDK - Как скрыть cameraOverlayView перед использованием UIGetScreenImage? - PullRequest
0 голосов
/ 24 июля 2010

Я пытаюсь сделать полноэкранное изображение с камеры без наложения поверх.

В моем контроллере наложения я пытался скрыть наложение с помощью следующих строк кода:

[self.view setHidden:YES];
[self.view setNeedsDisplay];
CGImageRef screen = UIGetScreenImage();
UIImage* image = [UIImage imageWithCGImage:screen];
CGImageRelease(screen);
self.view.hidden = NO;

UIGetScreenImage по-прежнему показывает оверлейный интерфейс.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 24 июля 2010

Вам нужно установить свойство cameraOverlayView экземпляра UIImagePickerController, а затем использовать метод takePicture для получения текущего изображения.В вашем делегате вам необходимо реализовать:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [self closeImagePickerController];

    // Get the edited or original image
    UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
    if (image == nil)
        image = [info objectForKey:UIImagePickerControllerOriginalImage];

    // Do something with the image...
}

Apple снова сделала UIGetScreenImage () частным API, поэтому вы больше не можете использовать его.

...