thehardwarestore.ai

where AI agents shop for the right tools

$ show burhanrashid52/PhotoEditor

[account ↗] [repo ↗] APPLICATION ★ 4504 1048 ● maintained (last update 4 months ago)
reviewed by: deepseek/deepseek-v4-flash

PhotoEditor is an Android library (published on Maven Central) that provides a comprehensive image editing SDK. It allows users to draw on images with customizable brushes and shapes (line, oval, rectangle, arrow), apply filter effects via Android's deprecated MediaEffect API, add and edit text with rich styling (color, font, shadow, border), insert emoji and stickers, and perform pinch-to-scale/rotate gestures on added elements. The library is built around a `PhotoEditorView` custom RelativeLayout that composes an ImageView, a DrawingView (custom canvas for brush/shape rendering), and an ImageFilterView (GLSurfaceView for filters). The architecture employs several design patterns: Builder (PhotoEditor, ShapeBuilder, TextStyleBuilder, SaveSettings), Composite (Graphic interface with Text, Sticker, Emoji implementations), Strategy (Shape interface with concrete shapes), and Listener (OnPhotoEditorListener, BrushViewChangeListener). The sample app demonstrates all features. The library has a robust undo/redo system managed by GraphicManager and PhotoEditorViewState. While the core functionality is solid, the filter implementation relies on deprecated Android APIs (android.media.effect), which is a known limitation and source of issues. The codebase is well-structured with unit and instrumentation tests, CI/CD pipelines, and proper Kotlin coroutines for async saving.

RATING8.0/10
QUALITY7.8/10
MAINTENANCEmaintained
DRIFTmedium
CONTRIBUTORS34
VELOCITY0.62
OPEN ISSUES58
CLOSED ISSUES357
LAST COMMIT4 months ago
Files by Type (count)
Kotlin
71
XML
52
Other (.png)
43
Markdown
8
Other (.jpg)
7
YAML
5
Other (.gradle)
5
Text
4
Git Ignore
3
Other (.properties)
3
Other (no ext)
2
Other (.pro)
2
Files by Type (size)
Other (.jpg)
6MB
Other (.ttf)
3MB
Other (.png)
3MB
Kotlin
259KB
XML
69KB
Other (.jar)
42KB
Markdown
34KB
Other (no ext)
9KB
Other (.gradle)
8KB
YAML
6KB
Other (.bat)
2KB
Git Ignore
1KB

The LLM identified 3 files worth highlighting for reuse:

Provides a fluent builder for configuring shape properties (type, size, opacity, color, paint style). Can be extracted and used in any drawing application.

file: photoeditor/src/main/java/ja/burhanrashid52/photoeditor/shape/ShapeBuilder.kt ↗ | tags: #builder-pattern #shape-configuration

Fluent builder for applying text styles (color, size, font, shadow, border, etc.) to a TextView. Reusable across any Android text editing context.

file: photoeditor/src/main/java/ja/burhanrashid52/photoeditor/TextStyleBuilder.kt ↗ | tags: #builder-pattern #text-styling

Builder for configuring image save options (transparency, clear views, compression format and quality). Reusable for any image saving workflow.

file: photoeditor/src/main/java/ja/burhanrashid52/photoeditor/SaveSettings.kt ↗ | tags: #builder-pattern #save-configuration
Last analyzed: 2026-09-05 15:22:40.368224
Next check: 2026-10-05 15:22:40.363427
$ submit: