A simple, fast, and user-friendly GUI application for batch resizing high-resolution photos, built in Python. Designed for photographers, creatives, and anyone who needs to prepare images for the web without sacrificing quality.
- π± Drag & Drop support for easy image import
- π Batch resize by maximum width (default: 2048 px)
- π¨ Custom DPI control (default: 100 DPI)
- π Adjustable JPEG quality (default: 80%)
- π Choose custom output folder
- π§ Preserves EXIF metadata when available
- β‘ High-quality LANCZOS resampling
- π Progress bar and status updates
- π§΅ Background processing (UI stays responsive)
Supported formats
- JPG / JPEG
- PNG
- TIFF
- BMP
- WEBP
This tool is ideal if you:
- Want to upload photos to websites, portfolios, or social media
- Need consistent export settings across many images
- Prefer a lightweight desktop tool over heavy photo editors
- Want Lightroom-like export defaults without opening Lightroom
- Python 3.9+
- Operating Systems:
- macOS
- Windows
- Linux (with Tk support)
Clone the repository:
git clone https://github.com/yourusername/photo-batch-downscaler.git
cd photo-batch-downscalerInstall dependencies:
pip install pillow tkinterdnd2Run the application:
python photo_downscaler.py- Drag & drop images into the window or click Add Images
- Adjust export settings (width, DPI, quality)
- Choose an output folder
- Click Process Images
- Done β
Processed images are saved using the original filenames.
| Setting | Default |
|---|---|
| Max width | 2048 px |
| Resolution | 100 DPI |
| Quality | 80% |
| Resampling | LANCZOS |
These defaults are chosen to match common Lightroom web export presets.
- EXIF data is preserved when possible
- Images smaller than the max width are not upscaled
- Processing runs in a background thread to keep the UI responsive
- Uses Pillow for image handling and tkinterdnd2 for drag & drop
Ideas if you want to extend the tool:
- Rename files on export
- Convert all images to JPEG / WebP
- Height-based resizing
- Preset profiles (Instagram, Web, Portfolio)
- CLI version for automation
MIT License β feel free to use, modify, and share.
Pull requests and suggestions are very welcome.
If you use this tool in your workflow, a β on GitHub is always appreciated.