A lightweight Android library for compressing images with minimal quality loss.
Compressor is an Android library that compresses large photos into smaller files with minimal quality loss. It provides a configurable API to reduce image file sizes for better app performance and efficient network transfers. The library handles resolution adjustment, quality reduction, format conversion, and size constraints through a simple interface.
Android developers who need to optimize image handling in their apps, particularly those dealing with camera photos, gallery uploads, or memory-intensive image operations.
Developers choose Compressor for its balance of simplicity and flexibility—offering sensible defaults for quick implementation while allowing deep customization through constraints. Its Kotlin-first design with coroutine support aligns with modern Android development practices.
An android image compression library.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows fine-tuning of resolution, quality, format, and size constraints through a chainable API, as shown in examples like setting width to 640 and format to WEBP.
Integrates seamlessly with Kotlin coroutines for asynchronous operations, enabling non-blocking compression from scopes like lifecycleScope or GlobalScope.
Supports custom constraints and extensions, letting developers define rules like lower-case file names and combine them with built-in options for tailored compression.
Offers an intuitive, chainable syntax that reduces boilerplate, making it easy to compress images with minimal code, as demonstrated in the basic usage snippet.
Heavily relies on Kotlin coroutines, which can complicate integration in Java-focused projects or those using alternative concurrency models.
Only outputs JPEG, PNG, and WEBP formats, missing newer options like HEIF or AVIF that might be needed for modern image optimization.
The separate README for old versions indicates that updates may introduce breaking changes, requiring migration efforts for long-term maintenance.