android-gpuimage-plus  by wysaid

Android library for image/camera/video filters using OpenGL

created 9 years ago
1,866 stars

Top 23.8% on sourcepulse

GitHubView on GitHub
Project Summary

This library provides Android developers with a C++ and Java toolkit for applying real-time image, camera, and video filters using OpenGL. It targets mobile developers seeking high-performance, customizable visual effects for their applications, offering a flexible rule-string system and the ability to integrate custom C++ shaders.

How It Works

The library leverages OpenGL ES for hardware-accelerated rendering of image and video streams. It employs a flexible shader-based approach, allowing for complex visual effects through a combination of built-in filters and user-defined GLSL shaders. A key feature is its "rule string" parsing mechanism, which enables dynamic application of multiple filters and parameters without recompiling native code, enhancing development agility.

Quick Start & Requirements

  • Install: Add the Gradle dependency: implementation 'org.wysaid:gpuimage-plus:3.0.0' (or 3.0.0-min for image-only).
  • Prerequisites: Android SDK, NDK (for CMake build), and optionally FFmpeg for video processing.
  • Build: Recommended via Android Studio with CMake (usingCMakeCompile=true in local.properties). Alternatively, use VS Code with WSL or provided tasks.sh scripts.
  • Demo: Run with bash tasks.sh --run.
  • Docs: Parsing String Rule (EN)

Highlighted Details

  • Supports image, camera, and video filtering.
  • Extensive filter library accessible via a rule string syntax.
  • Allows custom C++ shader integration.
  • Bundles FFmpeg for video module (optional).
  • Offers precompiled .so libraries.

Maintenance & Community

  • Project appears actively maintained by wysaid.
  • Links to an iOS version are provided.
  • Documentation is available via GitHub Wiki.

Licensing & Compatibility

  • MIT License.
  • Permissive license suitable for commercial and closed-source applications.

Limitations & Caveats

The project notes that the JCenter repository is out of date, recommending the use of the GitHub-hosted Maven repository or compiling from source. Building the native library requires careful setup of the Android NDK and CMake.

Health Check
Last commit

1 month ago

Responsiveness

1 day

Pull Requests (30d)
0
Issues (30d)
0
Star History
20 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.