minimo (photo) is a free mobile app for shrinking photos directly on your device. No cloud upload. No subscription. Your photos stay yours.
Also available: minimo (video), for compressing videos on your device.
- Simple quality presets: high, medium, low
- Advanced controls: quality, maximum dimensions, and EXIF metadata
- Batch compression with progress and cancellation
- Before-and-after comparison
- Save and share compressed photos
flowchart TD
A[PhotoFileAdapter<br/>loads photos from gallery or files] --> B[CompressBloc<br/>processes photos sequentially]
B --> C[PhotoCompressorAdapter<br/>applies quality, dimensions and EXIF settings]
C --> D[flutter_image_compress]
D --> E{Native platform plugin}
subgraph Android
F[Android image APIs]
F --> G[JPEG or PNG output]
end
subgraph iOS
H[iOS image APIs]
H --> I[JPEG, PNG or HEIC output]
end
E -->|Android| F
E -->|iOS| H
G --> J{At least 10% smaller?}
I --> J
J -->|Yes| K[Keep temporary result for save or share]
J -->|No| L[Discard result and keep original]
The selected preset sets JPEG quality and a maximum image side. A photo is skipped when recompression saves less than 10%; this commonly happens when its dimensions are already below the preset limit. iOS keeps HEIC output for HEIC/HEIF sources; Android writes them as JPEG.
- Photo compression is powered by flutter_image_compress. Respect and thanks to its maintainers and contributors.
- Store screenshot editor: app-store-screenshots by Parth Jadhav.
- Local metadata workflow: asc-metadata-sync and App Store Connect CLI by Rudrank Riyam.
