explaingit

wasabeef/android-gpuimage

9,159JavaAudience · developerComplexity · 2/5LicenseSetup · easy

TLDR

Library that lets Android developers apply GPU-accelerated visual filters, blur, sepia, sharpen, edge detection, to images, mirrors the iOS GPUImage API so filter logic ports with minimal changes.

Mindmap

mindmap
  root((android-gpuimage))
    What it does
      GPU image filters
      Mirror iOS GPUImage
      OpenGL ES 2.0
    Filter types
      Color adjustments
      Blur effects
      Stylized looks
      Blending modes
    Tech stack
      Java and Kotlin
      Android
    Use cases
      Photo filter apps
      Camera previews
      iOS filter port
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add photo filters like sepia, blur, or sketch to an Android app in a few lines of code.

USE CASE 2

Build a real-time GPU-accelerated camera filter preview for a photo or video app.

USE CASE 3

Chain multiple effects, brightness, contrast, Gaussian blur, in sequence before saving an image.

USE CASE 4

Port iOS GPUImage filter shaders to Android with minimal changes.

Tech stack

JavaKotlinOpenGL ES 2.0Android

Getting it running

Difficulty · easy Time to first run · 30min

Add one dependency line to build.gradle, requires Android 2.2+ with OpenGL ES 2.0, supported on all modern devices.

Use freely in personal and commercial Android apps under the Apache 2.0 license, with no restrictions.

In plain English

GPUImage for Android is a library that lets Android app developers apply visual filters to images using the phone's graphics chip rather than its main processor. Think of it like the filter layer in a photo app: you can make an image look aged and brown (sepia), sharpen it, blur it, detect edges so it looks like a sketch, or combine multiple effects at once. All of that processing happens on the GPU, which is built to handle this kind of work quickly. The project was built to mirror a popular iOS library called GPUImage, and it intentionally reuses the same underlying shader code so developers who know the iOS version can move their filter logic to Android with minimal changes. It requires Android 2.2 or later and works with OpenGL ES 2.0, which is supported on essentially all modern Android devices. To use it, a developer adds a single line to their project's build file, then writes a few lines of code to load an image, attach a filter, and either display it in a preview or save it directly to the device. The library supports both Java and Kotlin, the two main languages used for Android development. The filter library is extensive. It covers color adjustments like brightness, contrast, saturation, hue, and white balance, stylized looks like toon, posterize, sketch, and CGA color, blending modes for layering images, and a range of blur types including Gaussian, box, bilateral, and zoom blur. Many of these come from the iOS original, though not all iOS filters have been ported yet. The README includes a checklist showing which ones are complete and which are still missing. The project is open source under the Apache 2.0 license, which means it can be used freely in both personal and commercial Android apps.

Copy-paste prompts

Prompt 1
Using the android-gpuimage library in Java, show me how to load a bitmap, apply a sepia filter, and save the result to disk.
Prompt 2
I want to chain a blur filter and a brightness adjustment together with GPUImage for Android. Show me the setup code in Kotlin.
Prompt 3
How do I display a real-time camera preview with a sketch edge-detection filter using android-gpuimage?
Prompt 4
Show me how to add android-gpuimage to a Gradle project and apply a Gaussian blur with a custom radius.
Open on GitHub → Explain another repo

← wasabeef on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.