Примените фильтр к входу камеры, используя backgroundFilters для CALayer - PullRequest
1 голос
/ 18 января 2012

У меня есть приложение для iPhone с камерой, и я пытаюсь применить фильтр к видеовходу и показать отфильтрованное видео на экране.

Я думал о применении фильтра для метода captureOutput как:

-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {

    CVPixelBufferRef pixelBuffer = (CVPixelBufferRef)CMSampleBufferGetImageBuffer(sampleBuffer);
    CIImage *image = [CIImage imageWithCVPixelBuffer:pixelBuffer];
    CIFilter *filter = [CIFilter    filterWithName:@"CISepiaTone" 
                                    keysAndValues:kCIInputImageKey, 
                                    image, @"inputIntensity", 
                                    [NSNumber numberWithFloat:0.8],
                                    nil];
    videoCALayer.filters = [NSArray arrayWithObject:filter];
    [videoCALayer setValue:[NSNumber numberWithInt:1] forKeyPath:@"filters.CISepiaTone.inputScale"];
}

Я пытаюсь установить массив backgroundFilters, а затем установить первый фильтр для CALayer, но он не работает, кто-нибудь может подсказать, как это делается? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...