Как реализовать Drag Distortion Image Filter в Android?

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

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

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

Наши запросы как под: -

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

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

Заранее спасибо!

1 ответ

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

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

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

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

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

Другие вопросы по тегам