Форма захвата изображения iOS GPUImage

Я пытаюсь захватить изображение с помощью приложения, которое использует GPUImage. У меня камера настроена так

self.videoCamera = [[GPUImageVideoCamera alloc]
                    initWithSessionPreset:AVCaptureSessionPresetHigh
                    cameraPosition:AVCaptureDevicePositionBack];
_videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
[_videoCamera startCameraCapture];
[_videoCamera addTarget:sample1ImageView];

и я использую пользовательский фильтр:

radFilter = [[GPUImageCustomFilter alloc] init];
[_videoCamera addTarget:cusFilter];
[cusFilter addTarget:imageView];

Затем я использую этот код для захвата камеры:

[_videoCamera pauseCameraCapture];
[radFilter forceProcessingAtSize:CGSizeMake(600, 600)];
[radFilter useNextFrameForImageCapture];
UIImage* capturedImage = [radFilter imageFromCurrentFramebuffer];
UIImageWriteToSavedPhotosAlbum(capturedImage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
[_videoCamera resumeCameraCapture];

и все, что я получаю, это белые картинки с rgb 0,0,0. Я попытался сохранить как в IBAction, так и в rac_signalForControlEvents, я использовал диспетчеризацию, но ничего не изменилось. Может ли кто-нибудь сказать мне, что я делаю неправильно?

Спасибо, Алекс.


person user3195199    schedule 26.08.2015    source источник


Ответы (1)


попробуйте использовать GPUImageStillCamera вот так..

в вашем .h файле..

GPUImageStillCamera *stillCamera;
GPUImageView * filterView;

в ваших .m файлах viewdidload..

selectedFilter = [[GPUImageFilter alloc]init];
filterView=[[GPUImageView alloc]init];

stillCamera=[[GPUImageStillCamera alloc]initWithSessionPreset:AVCaptureSessionPresetPhoto cameraPosition:AVCaptureDevicePositionFront];
stillCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
[stillCamera addTarget:selectedFilter];
[selectedFilter addTarget:filterView];
[stillCamera startCameraCapture];

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

[stillCamera capturePhotoAsImageProcessedUpToFilter:selectedFilter withCompletionHandler:^(UIImage *processedImage, NSError *error)
 {
        UIImageWriteToSavedPhotosAlbum(processedImage, self, nil, nil);
 }];
person krushnsinh    schedule 28.08.2015