Подтвердить что ты не робот

Как реализовать фильтр искажений искажений в Android?

Я работаю над проектом пользовательского фильтра изображений. И я столкнулся с одной сложной задачей, в которой я должен применять искаженные фильтры, что можно увидеть в Прикольное приложение для эффекта лица. Я хочу разработать первые 3 фильтра, доступные в Funny Face Effects.

Итак, чтобы реализовать такой эффект, я начал использовать GPUImageView GPUImage, и в этом он использует искатель для искажения изображения из центра. Я достиг этого Bulge. Но можно ли каким-либо образом реализовать фильтр перетаскивания, где я могу исказить изображение с помощью жестов перетаскивания?

Мы попытались найти другие сторонние классы, кроме GPUImage. Но мы не могли найти полезные вещи.

Наши запросы следующие: -

1) Можно ли применить фильтр Drag с помощью жестов Drag? (Любой фрагмент кода или ссылка заметна)

2) Любой другой сторонний класс, отличный от GPU, который может помочь нам получить результаты.

Спасибо заранее!

введите описание изображения здесь

4b9b3361

Ответ 1

Один из способов достижения этой цели - использовать дополнительную текстуру, чтобы указать, чтобы шейдер фрагмента применял деформацию. Вы можете изменить это содержимое текстуры из приложения, когда пользователь коснется изображения, чтобы применить деформации.

GPUImageBulgeDistortionFilter extends GPUImageFilter, который предназначен для использования только одной текстуры.

Вам нужно будет дублировать привязку текстуры (glBindTexture) и назначить шейдер фрагмента (glUniform1i) в GPUImageFilter, используя 1 для новой текстуры (вместо 0). Вам также потребуется дублировать glGetUniformLocation и использовать другое имя вместо inputImageTexture, например inputImageTexture2.

Измените шейдер фрагмента в GPUImageBulgeDistortionFilter или создайте новый класс, полученный из GPUImageBulgeDistortionFilter, чтобы добавить "единый файл sampler2D inputImageTexture2;\n" +

Наконец, добавьте код для использования inputImageTexture2 texels для деформирования данных на inputImageTexture в том же фрагментаторе.