Repository navigation
Releases
Tiny Compressor KTX 1.2.1
Fixes a race in the demo's WorkManager upload recipes: overlapping directory cleanup could crash when another cleanup had already removed a path. Adds regression tests for that cleanup race.
This patch updates the demo and upload examples. The compression API, upload preset, result metadata, and library defaults remain as introduced in 1.2.0.
implementation("io.github.joelromanpr:tiny-compressor-ktx:1.2.1")README and examples · Demo APK
The APK is a debug-signed sample app. Benchmark links refer to the recorded 1.2.0 baseline.
Tiny Compressor KTX 1.2.0
The WorkManager upload example has a concurrent-cleanup race, fixed in 1.2.1. The core compressor is unaffected.
Tiny Compressor KTX 1.2.0 supports Android 9+ and adds APIs for preparing images before upload.
- Inspect actual output dimensions, format, bytes, and encoder quality with
compressWithResult. - Use
Options.forUpload(maxBytes)for a strict byte limit without retaining source EXIF. - Set minimum quality and dimensions with
CompressionConstraints. - Compress batches with bounded concurrency, per-image results, and cancellation handling.
- Try the interactive demo, compiled upload recipes, and reproducible measurements.
implementation("io.github.joelromanpr:tiny-compressor-ktx:1.2.0")Existing APIs and Options() defaults remain available. The legacy default retains selected JPEG EXIF, including GPS; use the upload preset or keepExif = false when those details are unnecessary.
The attached demo APK is debug-signed. Its SHA-256 is in SHA256SUMS.
v1.1.0
What's new in 1.1.0
maxBytesnow applies to the final output, including copied EXIF. An impossible target throwsIOException.- File output is staged and atomically replaced after successful encoding. Concurrent cache outputs use unique filenames.
- Byte-array output ignores
Options.destinationand avoids a disk round trip when JPEG EXIF retention is off. - PNG input retains PNG output unless WebP is requested; output extensions match the encoded format. JPEG orientation is normalized after decode.
- The demo, README, contribution guide, and release checks have been refreshed. Publishing now requires a matching annotated version tag and passing build and Android device tests.
Install from Maven Central:
implementation("io.github.joelromanpr:tiny-compressor-ktx:1.1.0")Requires Android 11 (API 30) or newer. keepExif remains true by default for compatibility; use false for uploads that should omit camera and GPS metadata.
See the README for examples and the changelog for the full list.