A powerful, user-friendly desktop application for bulk image optimization.
- Batch Processing: Optimize multiple images at once by selecting individual files or entire folders
- Format Support: Works with JPEG, PNG, GIF, BMP, TIFF, and WebP files
- Quality Control: Adjust JPEG quality and PNG compression levels
- Image Resizing: Resize images while maintaining aspect ratio
- Format Conversion: Convert images between formats
- User-Friendly Interface: Clean, intuitive design for efficient workflow
- Download the latest release from the Releases page
- Run the app (
BulkImageOptimizer.exe) - Launch the application's executable file
! WIP !
! WIP !
- Python 3.6 or higher
- Pillow (PIL Fork)
-
Clone this repository:
git clone https://github.com/barandev/bulk-image-optimizer.git cd bulk-image-optimizer -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python main.py
You can create a standalone executable using PyInstaller:
pip install pyinstaller
pyinstaller --onefile --windowed main.py
# Optional parameters (add icons to docs\images\ in both .png and .ico types):
# pyinstaller --name="BulkImageOptimizer" --onefile --windowed --icon="docs\images\icon.ico" --add-data="docs\images\icon.ico;." --add-data="docs\images\icon.png;." --clean --noconsole main.pyThe executable will be created in the dist directory.
- Select Images: Click "Select Images" to choose individual files or "Select Folder" to scan an entire directory
- Configure Settings:
- Adjust JPEG quality (10-100) (85 by default)
- Set PNG compression level (0-9) (6 by default)
- Enable/disable resizing and set maximum dimensions (disabled by default)
- Choose output format (original by default)
- Set output directory (creates new folder with the name
optimizedon the source folder by default) - Toggle original filename preservation (enabled by default)
- Start Optimization: Click the "START OPTIMIZATION" button
- Monitor Progress: The progress bar and status text will keep you informed
The application is designed to be easily customized. At the top of the main.py file, you'll find several configuration sections:
- APP_TITLE and dimensions: Modify the window title and size
- COLORS: Change the color palette
- FONTS: Update font families, sizes, and styles
- PADDING: Adjust spacing throughout the interface
- TEXTS: Modify all text labels and messages (useful for localization)
- DEFAULTS: Change default optimization settings
- FORMATS: Update supported file formats and extensions
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Pillow (PIL Fork) for image processing capabilities
- Tkinter for the GUI framework
- Add advanced optimization algorithms
- Implement metadata preservation options
- Add file size preview functionality
- Add localization support
- Implement batch rename features
