我正在尝试将GPUImageGaussianBlurFilter应用于使用PNG图像的实时相机Feed屏蔽。另外我需要提一下,PNG图像不是正方形或圆形,而是封闭的Bezier路径。
这是我的代码:
GPUImageVideoCamera *videoCamera;
GPUImageView *view1;
videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];
videoCamera.outputImageOrientation = UIInterfaceOrientationLandscapeRight;
CGRect movieFrame = CGRectMake(0.0, 0.0, 640.0, 480.0);
view1 = [[GPUImageView alloc] initWithFrame:movieFrame];
[self.view addSubview:view1];
GPUImageMaskFilter * maskFilter = [[GPUImageMaskFilter alloc] init];
[videoCamera addTarget:maskFilter];
GPUImageGaussianBlurFilter * gaussianBlurFilter = [[GPUImageGaussianBlurFilter alloc] init];
[gaussianBlurFilter setBlurRadiusInPixels:3.0];
[gaussianBlurFilter addTarget:maskFilter];
GPUImagePicture * maskGPUImage = [[GPUImagePicture alloc] initWithImage:[UIImage imageNamed:@"mask2"] smoothlyScaleOutput:YES];
[maskGPUImage addTarget:maskFilter];
[maskGPUImage processImage];
[maskFilter addTarget:view1];
[videoCamera startCameraCapture];
但Xcode 6.0.1在“GPUImageFramebuffer.m”中编译后在执行中断执行:
NSAssert(framebufferReferenceCount > 0, @"Tried to overrelease a framebuffer, did you forget to call -useNextFrameForImageCapture before using -imageFromCurrentFramebuffer?");
使用OSX Mavericks 10.9.5,iPad Air进行测试
此致
答案 0 :(得分:1)
我找到了解决方案;引用应该是强大的。弱引用早期发布