GPUImage2无法实时循环过滤器

时间:2016-08-11 17:55:52

标签: ios swift image-processing gpuimage gpuimagestillcamera

我有以下代码块,它利用GPUImage2库实时过滤视频。我们的想法是能够根据按钮点击来循环这些过滤器。但是只会应用一个过滤器,每当我尝试循环到下一个过滤器时,它都不会改变。这是我的功能:

func filterToggle() {
    switch(filterSelected) {
    case 0:
        let sketch = SketchFilter()
        camera! --> sketch --> renderView
        break;
    case 1:
        let toon = ToonFilter()
        camera! --> toon --> renderView
        break;
    default:
        break;
    }
    camera?.startCapture()
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

在切换到另一个滤镜之前,您必须先断开以前的滤镜与renderView和相机的连接。

在向链中添加新过滤器之前,请在相机和前一个过滤器上调用removeAllTargets()(您可能需要一个存储前一个过滤器的实例变量才能执行此操作)。 Mac版的FilterShowcase演示了这一点。