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

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

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

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

我们的查询如下:

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

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

提前致谢!

在这里输入图像说明

Solutions Collecting From Web of "如何在Android中实现拖动失真图像filter?"

实现它的一种方法是使用额外的纹理来指定片段着色器应用的变形。 您可以在用户触摸图像以应用变形时从应用程序修改纹理内容。

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

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

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

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