arsync_image_compression 0.0.4
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:
- Check if compression needed - Only compresses if image exceeds target size
- Initial compression - Starts with your specified quality setting
- Iterative reduction - If still too large, reduces quality by 30% and tries again
- Quality threshold - Stops when reaching minimum quality to prevent over-compression
- Attempt limit - Maximum attempts to prevent infinite loops
Dependencies #
This package depends on:
- arsync_image_picker - Core image picker functionality
- flutter_image_compress - Native compression engine
Author #
Atif Siddiqui
- Email: itsatifsiddiqui@gmail.com
- GitHub: itsatifsiddiqui
- LinkedIn: 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.