У меня есть приложение для 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, но он не работает, кто-нибудь может подсказать, как это делается? Спасибо.