A desktop application for compressing JPEG and PNG photos without visible quality loss. Built with Python and customtkinter.
- Batch compression (multiple files at once)
- Adjustable quality slider (1–95%)
- Progress bar with live feedback
- Savings summary (before / after)
- Saves compressed files next to originals — originals are never overwritten
- Settings menu with custom output folder and adjustable thumbnail size
- Python 3.10+
- Pillow
- Clone the repository:
git clone https://github.com/Sebian12/SnapPress.git
cd SnapPress- Install dependencies:
pip install Pillow customtkinter CTkMessagebox- Run the app:
python main.py- Download .exe file from current release or Apertix website.
- Click Choose photos to select files
- Adjust the quality slider (default: 80%)
- Click Compress and save
- Compressed files are saved in the same folder as the originals with a
_compressedsuffix or saved in selected folder
- Switch from tkinter to customtkinter
- Dark mode (1.2.0)
- Settings menu (1.3.0)
- Custom output folder (1.4.0)
- Settings saver (1.5.0)
- File counter (1.5.0)
- Button to clear photo list or single photo (1.5.0)
- Compressed file size next to file name (1.6.0)
- Thumbnails of photos (1.7.0)
- App logo (1.7.1)
- User set thumbnail size (1.7.2)
- Optimization (1.8.0)
- EXIF metadata preservation (1.9.0)
- Granular metadata control in settings (only GPS data checkbox) (1.10.0)
- More metadata control in settings (1.11.0)
- New file format support (1.12.0)
- Pack compressed photos to zip (1.13.0)
- Multithreading (planned)
- Drag & Drop support (planned)
| App | Platform | Language |
|---|---|---|
| SnapPress | Windows / Linux / Web | Python / JavaScript |
| SnapPress Android | Android | Kotlin |
| SnapRename | Windows | C# |
| SnapRename Android (planned) | Android | Kotlin |
- Python 3.14
- customtkinter — GUI
- Pillow — image processing
- CTkMessageBox
MIT



