我正在开发一个自定义图像滤镜项目。我遇到了一个具有挑战性的任务,即应用扭曲滤镜,就像有趣的脸部特效应用中所示。我想要开发前三个与有趣的脸部特效相同的滤镜。为了实现这样的效果,我开始使用GPUImageView GPUImage,它使用seekbar来从中心扭曲图像。我已经实现了凸起的扭曲效果。但是是否有任何方法可以实现拖动滤镜,让我能够通过拖动手势扭曲我的图像?我们试图搜索除GPUImage之外的任何其他第三方类。但我们找不到有用的东西。我们的问题如下:1)是否可能使用拖动手势应用拖动滤镜?(任何代码片段或参考都可接受)2)是否有其他第三方类可以帮助我们获得上述结果。提前感谢!
一种实现方式是使用额外的纹理,指定变形应用给片元着色器。您可以在应用程序中修改该纹理内容,当用户触摸图片以应用变形时。 GPUImageBulgeDistortionFilter 扩展了 GPUImageFilter,它只设计使用一个纹理。您需要在 GPUImageFilter 中复制纹理绑定 (glBindTexture) 和分配到片元着色器 (glUniform1i),并使用 1 替换新纹理 (而不是 0)。您还需要复制 glGetUniformLocation,并使用其他名称 (例如 inputImageTexture2)。修改 GPUImageBulgeDistortionFilter 的片元着色器或创建一个从 GPUImageBulgeDistortionFilter 派生的新类来添加 "uniform sampler2D inputImageTexture2;\n" +。最后,在同一片段着色器中添加代码,使用inputImageTexture2纹素来扭曲inputImageTexture中的数据。