圈压
Find a file
2026-01-11 22:28:06 +08:00
android fix: release signing 2026-01-11 22:19:42 +08:00
assets/logo feat: add logo 2026-01-11 15:41:13 +08:00
ios feat: migrate image compressor from quanquan-android 2026-01-11 15:37:41 +08:00
lib feat: add image crop functionality 2026-01-11 20:45:56 +08:00
linux feat: add privacy policy page with email contact 2026-01-11 16:19:17 +08:00
macos feat: implement persistent storage settings, custom folder support, metadata preservation, and cache clearing 2026-01-11 18:01:22 +08:00
test feat: migrate image compressor from quanquan-android 2026-01-11 15:37:41 +08:00
web feat: migrate image compressor from quanquan-android 2026-01-11 15:37:41 +08:00
windows feat: add privacy policy page with email contact 2026-01-11 16:19:17 +08:00
.gitignore feat: migrate image compressor from quanquan-android 2026-01-11 15:37:41 +08:00
.metadata feat: migrate image compressor from quanquan-android 2026-01-11 15:37:41 +08:00
analysis_options.yaml feat: migrate image compressor from quanquan-android 2026-01-11 15:37:41 +08:00
build_aab.sh feat: add aab build script 2026-01-11 22:11:14 +08:00
build_prod.sh fix: release build 2026-01-11 21:01:43 +08:00
l10n.yaml feat: Add app localization support with English and Chinese 2026-01-11 16:54:06 +08:00
pubspec.lock fix: release build 2026-01-11 21:01:43 +08:00
pubspec.yaml fix: release build 2026-01-11 21:01:43 +08:00
README.md fix: release signing 2026-01-11 22:19:42 +08:00
RELEASE_NOTES.md fix: release signing 2026-01-11 22:19:42 +08:00
RELEASE_NOTES_TAGGED.md chore: add tagged release notes 2026-01-11 22:28:06 +08:00

QuanQuan Compressor

QuanQuan Compressor Logo

A powerful, privacy-focused image compression app built with Flutter. Compress images locally on your device with no data collection or cloud uploads.

Features

  • 🖼️ Batch Processing - Compress up to 50 images at once
  • 🎚️ Quality Control - Customizable compression ratio (10-100%)
  • 📁 Multiple Formats - Support for JPG, PNG, and WebP output
  • 👁️ Live Preview - Compare before and after compression
  • ✂️ Image Cropping - Crop images with aspect ratio options
  • 📏 Dimension Limits - Optionally resize images to max width/height
  • 🎨 Color Depth Control - Reduce colors for additional compression
  • 💾 Flexible Storage - Save to photo album or custom folder
  • 📋 EXIF Preservation - Optionally keep image metadata
  • 📜 Compression History - Track all your compressed images
  • 🌍 Multi-language Support - English, Chinese (Simplified/Traditional), French, German, Spanish, Japanese
  • 🌓 Theme Options - Light, Dark, or System-based themes
  • 🔒 100% Offline - No network requests, complete privacy

🔒 Privacy First

QuanQuan Compressor is designed with privacy as a core principle:

  • No data collection - We don't collect any personal information
  • No cloud uploads - All processing happens locally on your device
  • No analytics - No tracking or third-party analytics
  • No ads - Completely ad-free experience
  • Fully offline - Works without internet connection

📱 Screenshots

Coming soon

🛠️ Tech Stack

  • Framework: Flutter 3.10+
  • State Management: Riverpod
  • Image Processing: flutter_image_compress
  • Image Picker: wechat_assets_picker
  • Image Cropping: image_cropper
  • Localization: Flutter Intl (ARB files)

🚀 Getting Started

Prerequisites

  • Flutter SDK 3.10.4 or higher
  • Dart SDK 3.10.4 or higher
  • Android Studio / VS Code

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/quanquanimagecompressor.git
cd quanquanimagecompressor
  1. Install dependencies:
flutter pub get
  1. Generate localization files:
flutter gen-l10n
  1. Run the app:
flutter run

Building for Production

Android APK

./build_prod.sh

Android App Bundle

./build_aab.sh

📦 Supported Platforms

Platform Status
Android Supported
iOS 🚧 Coming Soon
Web 🚧 Planned

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is private and not open for distribution without permission.

📧 Contact

For questions or feedback, please open an issue or contact us directly.


Made with ❤️ using Flutter