smart_image_compress 0.1.0 copy "smart_image_compress: ^0.1.0" to clipboard
smart_image_compress: ^0.1.0 copied to clipboard

Automatic image compression for Flutter apps. Intelligently compresses images to configurable size/resolution limits while preserving quality. Supports batch processing via isolates, image picker inte [...]

Changelog #

All notable changes to the smart_image_compress package will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.1.0 - 2026-02-20 #

Initial Release 🎉 #

Added

  • Core Compression Features

    • CompressionService for intelligent image compression
    • CompressConfig for configurable compression parameters
    • Single image compression with compressSingleImage()
    • Batch compression via isolates with compressBatchInIsolate()
    • Automatic EXIF orientation correction
    • Support for WebP and JPEG formats
    • Iterative quality reduction algorithm
    • Progress tracking callbacks (0.0-1.0 for single, (int, int) for batch)
    • Temperature file lifecycle management
  • Widget Components

    • OptimizedImagePicker widget for easy image selection and compression
    • Support for single and multi-image selection
    • Camera and gallery sources
    • Real-time progress dialog with LinearProgressIndicator
    • Custom trigger widget support
    • Platform-aware permission handling (iOS/Android)
  • File Management

    • cleanupTemporaryFiles() - Delete all tracked temporary files
    • cleanupOldTemporaryFiles(Duration) - Age-based cleanup
    • Automatic temp file tracking via singleton service
    • Safe fallback to original file on errors
  • Configuration Options

    • maxSizeKB - Target file size (default: 300 KB)
    • maxResolution - Maximum image dimension (default: 1600 px)
    • initialQuality - Starting compression quality (default: 80%)
    • format - Output format WebP or JPEG (default: WebP)
    • keepExif - Preserve EXIF metadata (default: true)
    • autoCorrectOrientation - Auto-fix image orientation (default: true)
  • Developer Experience

    • 100% API documentation with examples
    • Comprehensive README with quick start and advanced usage
    • Example app demonstrating all features
    • Zero analyzer warnings
    • Full null safety compliance
    • Dart 3.5+ patterns and features
  • Error Handling

    • Graceful fallback to original file on compression failure
    • Permission request with user-friendly messages
    • Isolate error handling with proper cleanup
    • Try-catch with detailed logging via debugPrint()
    • Handles missing permissions elegantly
  • Performance Optimizations

    • Isolate-based batch processing for UI responsiveness
    • Single-image compression on main thread for small files
    • Quality reduction in 8% steps for smooth size/quality curve
    • Best-of approach returns optimal compression result
    • Minimal dependencies (4 core packages)

Technical Details #

  • Minimum Requirements

    • Dart 3.5.0+
    • Flutter 3.24.0+
    • Android API 21+
    • iOS 11.0+
  • Dependencies

    • flutter_image_compress: ^2.4.0
    • image_picker: ^1.2.1
    • permission_handler: ^11.3.1
    • path_provider: ^2.1.5

Known Limitations #

  • Web platform not supported (uses platform plugins)
  • No in-memory caching in v1 (focus on correctness over performance)
  • Isolate batch compression reports final progress only (not per-image)
  • Maximum image dimension bounds based on device capabilities

Future Roadmap #

Planned for v0.2.0

  • ❌ Stream-based progress for isolate compression
  • ❌ Optional LRU memory caching
  • ❌ Web platform support
  • ❌ Video thumbnail compression
  • ❌ Batch upload with resume capability
  • ❌ Color space optimization modes
  • ❌ Advanced filter support (blur, sharpen, etc.)

Considered for Future Releases

  • Multi-language documentation
  • More aggressive compression algorithms
  • Integration with cloud storage SDKs
  • Custom compression format support
  • Image metadata editor

Thanks #

Thanks to:


Version History Format #

Semantic Versioning #

  • MAJOR (0.x.0): Breaking API changes
  • MINOR (0.0.x): New features, backward compatible
  • PATCH (0.0.0): Bug fixes and improvements

Release Schedule #

  • Odd minor versions (0.1.x, 0.3.x) = feature updates
  • Even minor versions (0.2.x, 0.4.x) = performance updates and refinements

Last Updated: February 20, 2026 Package Author: [Your Name] License: MIT

3
likes
130
points
108
downloads

Publisher

unverified uploader

Weekly Downloads

Automatic image compression for Flutter apps. Intelligently compresses images to configurable size/resolution limits while preserving quality. Supports batch processing via isolates, image picker integration, and proper cleanup.

Repository (GitHub)
View/report issues

Topics

#image-compression #image-picker #flutter #compression #optimization

Documentation

API reference

License

MIT (license)

Dependencies

flutter, flutter_image_compress, image_picker, path_provider, permission_handler

More

Packages that depend on smart_image_compress