Skip to content

Releases

Tiny Compressor KTX 1.2.1

Choose a tag to compare

@github-actions github-actions released this 12 Nov 04:13
f9333a5

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

Choose a tag to compare

@github-actions github-actions released this 12 Nov 03:23
5cd0570

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.

Quickstart and demo · Changelog · Changes since 1.1.0

v1.1.0

Choose a tag to compare

@joelromanpr joelromanpr released this 26 Sep 03:04
f1e0d71

What's new in 1.1.0

  • maxBytes now applies to the final output, including copied EXIF. An impossible target throws IOException.
  • File output is staged and atomically replaced after successful encoding. Concurrent cache outputs use unique filenames.
  • Byte-array output ignores Options.destination and 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.