arsync_image_compression 0.0.4 copy "arsync_image_compression: ^0.0.4" to clipboard
arsync_image_compression: ^0.0.4 copied to clipboard

Image compression addon for arsync_image_picker

arsync_image_compression #

Smart image compression addon for arsync_image_picker.

Features #

  • πŸ—œοΈ Smart image compression with automatic quality adjustment
  • πŸ“ Target file size control (compress to specific MB)
  • πŸ”„ Multi-attempt compression with quality fallback
  • πŸ”§ Seamless integration with arsync_image_picker

Installation #

Add both packages to your pubspec.yaml:

dependencies:
  arsync_image_picker: ^0.1.0
  arsync_image_compression: ^0.1.0

Refer to flutter_image_compress package for more details about platform specific settings. #

Quick Start #

import 'package:arsync_image_picker/arsync_image_picker.dart';
import 'package:arsync_image_compression/arsync_image_compression.dart';

final picker = SuperImagePickerService();

// Add compression processor
picker.addProcessor(ImageCompressionProcessor(targetMaxSizeMB: 5.0));

// Pick and compress image
final image = await picker.pickImage(context: context);

Basic Usage #

Default Compression #

// Compress to 2MB max with default quality
picker.addProcessor(ImageCompressionProcessor(targetMaxSizeMB: 2.0));

Custom Quality #

picker.addProcessor(ImageCompressionProcessor(
  targetMaxSizeMB: 1.5,
  quality: 85, // Initial quality (default is 80)
  minQuality: 20, // Minimum quality threshold (default is 10)
));

Advanced Configuration #

picker.addProcessor(ImageCompressionProcessor(
  targetMaxSizeMB: 3.0,
  quality: 90,
  minQuality: 30,
  maxAttempts: 5, // Max compression attempts (default is 3)
));

How It Works #

The compression processor uses a smart multi-attempt approach:

  1. Check if compression needed - Only compresses if image exceeds target size
  2. Initial compression - Starts with your specified quality setting
  3. Iterative reduction - If still too large, reduces quality by 30% and tries again
  4. Quality threshold - Stops when reaching minimum quality to prevent over-compression
  5. Attempt limit - Maximum attempts to prevent infinite loops

Dependencies #

This package depends on:

Author #

Atif Siddiqui

About Arsync Solutions #

Arsync Solutions, We build Flutter apps for iOS, Android, and the web.

License #

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing #

Contributions are welcome! If you find a bug or want a feature, please open an issue.

1
likes
130
points
68
downloads

Publisher

unverified uploader

Weekly Downloads

Image compression addon for arsync_image_picker

Homepage
Repository (GitHub)
View/report issues

Topics

#image-compression #image-processing

Documentation

API reference

License

MIT (license)

Dependencies

arsync_image_picker, flutter, flutter_image_compress, path

More

Packages that depend on arsync_image_compression