如何在Android中实现拖动失真图像filter?

我正在处理自定义图像filter项目。 我遇到了一个具有挑战性的任务,我想应用扭曲的filter,可以在滑稽的脸部特效应用程序中看到。 我想开发滑稽脸部特效中的前3个filter。

所以为了实现这样的效果,我开始使用GPUImageView GPUImage ,在这里它使用seekbar从中心扭曲图像。 我已经实现了Bulge变形。 但有什么办法可以实现拖动filter,在那里我可以通过拖动手势来扭曲我的形象?

我们试图searchGPUImage以外的其他第三方类。 但是我们找不到有用的东西。

我们的查询如下:

1)是否可以使用拖动手势应用拖动filter? (任何代码片段或引用可察觉)

2)除了GPU之外的其他第三方类,可以帮助我们获得上述结果。

提前致谢!

在这里输入图像说明

  • SurfaceTexture的onFrameAvailable()方法总是调用得太迟了
  • 噪音algorithm在三星Galaxy SIII(GLES)
  • 试图在设备上绘制纹理三angular形失败,但模拟器工作。 为什么?
  • 使用OpenGL-ES绘制线条的最简单方法是什么(android)
  • Android和iOS上的OpenGL:优化以及它们的不同之处
  • 在Android中获得最大的OpenGL ES 2.0纹理大小限制
  • 如何确定Android OpenGL ES上的最大纹理内存
  • Android的OpenGL .OBJ文件加载器
  • 实现它的一种方法是使用额外的纹理来指定片段着色器应用的变形。 您可以在用户触摸图像以应用变形时从应用程序修改纹理内容。

    GPUImageBulgeDistortionFilter扩展了GPUImageFilter ,它被devise为只使用一个纹理。

    您需要在GPUImageFilter中使用1为新纹理(而不是0)复制纹理绑定(glBindTexture)和赋值给片段着色器(glUniform1i)。 您还需要复制glGetUniformLocation并使用其他名称而不是inputImageTexture,例如inputImageTexture2。

    在GPUImageBulgeDistortionFilter中修改片段着色器,或者创build一个从GPUImageBulgeDistortionFilter派生的新类,以添加“uniform sampler2D inputImageTexture2; \ n”+

    最后添加代码以使用inputImageTexture2 texels在同一片段着色器中的inputImageTexture上变形数据。