2010-08-21 4 views
0

Я пытаюсь использовать следующий код, чтобы делать скриншоты из моей UIImagePickerControlleriPhone - UIImagePickerController снимает снимки экрана?

UIGraphicsBeginImageContext(imagePicker.view.bounds.size); 
[self.imagePicker.view.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Он показывает все, кроме того, что захват с камеры, я вижу кнопку отмены, сфотографировать днище. Вместо того, что отображается на камере, он захватывает черный экран, есть ли способ обойти это? или лучший способ автоматического захвата изображения с камеры каждые 1 секунду?

- (void)captureOutput:(AVCaptureOutput *)captureOutput 
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer 
     fromConnection:(AVCaptureConnection *)connection 
{ 
    UIImage *image = [self imageFromSampleBuffer:sampleBuffer]; 
    UIImageView *img = [[UIImageView alloc] initWithImage:image]; 
    [img setFrame:CGRectMake(0, 0, 320, 480)]; 
    [self.view addSubview:img]; 
    [img release]; 
} 

ответ

1

Вы хотите использовать новые (в OS 4) API-интерфейсы AVFoundation.

Попробуйте эту страницу некоторую информацию:

http://developer.apple.com/iphone/library/qa/qa2010/qa1702.html

+0

спасибо, это, кажется, лучший способ, но о далеко данных я получить не могут быть преобразованы в UIImage. Я обновлю – aryaxt

+0

Образец кода в ссылке, которую я опубликовал, должен помочь. Часть пути вниз - это строка, в которой говорится <Добавить свой код здесь, который использует изображение>. В этот момент yiu имеет uiimage, чтобы делать то, что вам нравится. –

+0

Да, все работает нормально, и я получаю captureOutput, но когда я конвертирую его в uiimage и создаю образ и добавляю его в свое представление, uiimageview не отображает изображение, я думаю, что каким-то образом данные прерываются. Предполагает ли это работать на iphone 3g? поскольку iphone 3g не позволяет записывать видео. – aryaxt