在GPUImageView上叠加已过滤的子部分并捕获它

时间:2013-10-11 14:15:14

标签: ios objective-c gpuimage

首先,衷心感谢Brad Larson和一个很棒的图书馆的贡献者 https://github.com/BradLarson/GPUImage

...尝试构建捕获已过滤静止图像的基本工具。我的主视图是一个GPUImageView - 我想填充可见的屏幕。

我想在主流的顶部添加一个裁剪过滤器,它有自己的过滤器链和预览过滤器,只捕获该子部分。它看起来像是背景上的实时未经过滤的流,其中有一个应用过滤器的子部分。 (希望这很有意义。)

我无法弄清楚链接过滤器的正确方法,以及实现此过程的可能性。

我尝试在相机链中添加两个视图 - 在背景中使用较小的视图,并且具有所需的滤镜。这适用于预览,但是当我尝试捕获它时(使用较小视图上的当前过滤器),我不断收到内存异常。我不确定但似乎StillImageCamera不支持此配置?此配置如下所示:

Camera
-> Background GPUImageView
-> CropFilter - (desired inner rect)
--> various other filters
---> Inner GPUImageView (super imposed on top of background view)

我尝试过的另一种方法是在过滤器链中的某个位置只有一个GPUImageView但是fork。一个分支导致渲染的GPUImageView,另一个分支导致我想要捕获的特定过滤视图。这似乎是正确的策略,我可以捕获所需的过滤器链而不会崩溃,但捕获图像不断变回空白。它还有一个缺点,就是如上所述,我无法在子矩阵中显示过滤后的视图 此配置如下所示:

Camera
-> Outer CropFilter  (0,0,1,1) -- just used in order to have a base filter
--> Background GPUImageView
-> Inner CropFilter - (desired inner rect)
--> various other filters

基本上,我想:
1)在背景GPUImageView上显示/预览内部裁剪滤镜链 2)捕获内部过滤器链的静止

对是否以及如何实现这一目标表示感谢。

0 个答案:

没有答案