我在自定义图像滤镜项目上工作。我遇到了一个具有挑战性的任务,在这个任务中,我应该应用失真的滤波器,就像在Funny face effect app中看到的那样。我想开发Funny Face Effects中可用的前3个滤镜。
因此,为了实现这样的效果,我开始使用GPUImageView GPUImage,在这里,它使用搜索栏从中心扭曲图像。我已经通过这个实现了凸起扭曲。但是有没有办法实现拖拽滤镜,我可以通过拖拽手势来扭曲我的图像?
我们尝试搜索除GPUImage之外的其他任何第三方类。但是我们找不到有用的东西。
我们的查询如下:
1)是否可以使用拖动手势应用拖动过滤器?(任何可感知的代码片段或引用)
2) GPU以外的任何第三方类都可以帮助我们获得上述结果。
提前感谢!
发布于 2017-11-09 02:00:22
实现此目的的一种方法是使用附加纹理将要应用的变形指定给碎片着色器。当用户触摸图像以应用变形时,您可以从应用程序修改该纹理内容。
GPUImageBulgeDistortionFilter扩展了GPUImageFilter,它被设计为只使用一种纹理。
您需要在GPUImageFilter中复制纹理绑定(glBindTexture)和对片段着色器(glUniform1i)的指定,对新纹理使用1(而不是0)。您还需要复制glGetUniformLocation,并使用其他名称而不是inputImageTexture,例如inputImageTexture2。
修改GPUImageBulgeDistortionFilter中的片段着色器或创建从GPUImageBulgeDistortionFilter派生的新类,以添加"uniform sampler2D inputImageTexture2;\n“+
最后,在相同的片段着色器中添加代码以使用inputImageTexture2纹理素来变形inputImageTexture中的数据。
https://stackoverflow.com/questions/43279011
复制相似问题