我正在使用 BradLarson 的 GPUImage iOS 框架。我正在尝试按照 filtershowcase 中的示例为我的实时摄像机输入添加一个遮罩。对于其他过滤器,这个简单的链可以工作,但对于 GPUImageMaskFilter 则不能。我的输出只是一个白屏。少了什么东西?
这是我的代码:
stillCamera = [[GPUImageStillCamera alloc] init];
stillCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
GPUImageView *filterView = [[GPUImageView alloc]initWithFrame:CGRectMake(0, 0, 320, 427)];
[self.view addSubview:filterView];
maskFilter = [[GPUImageMaskFilter alloc] init];
[(GPUImageFilter*)maskFilter setBackgroundColorRed:0.0 green:1.0 blue:0.0 alpha:1.0];
UIImage *mask = [UIImage imageNamed:@"mask.png"];
GPUImagePicture *maskImage = [[GPUImagePicture alloc] initWithImage:mask smoothlyScaleOutput:YES];
[maskImage processImage];
[maskImage addTarget:maskFilter];
[stillCamera addTarget:maskFilter];
[maskFilter addTarget:filterView];
[stillCamera startCameraCapture];
我也尝试过使用 GPUImageVideoCamera 但这没有帮助。我认为问题可能出在过滤器链或掩码过滤器的声明上。
我检查了这个问题如何使用 GPUImage 实现 GPUImageMaskFilter,但这是针对静态图片而不是实时相机输入。
有任何想法吗?