Skip to content

Python app for converting images to grayscale and / or to invert the image

License

Notifications You must be signed in to change notification settings

esprit112/image-converter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎨 Image Converter Pro

Python Version License Platform Status

A professional, feature-rich image conversion tool built with PySide6

Transform your images with ease - Modern formats, Batch processing, Smart presets

πŸš€ Features β€’ πŸ“₯ Installation β€’ πŸ“– Usage β€’ πŸ–ΌοΈ Screenshots β€’ 🀝 Contributing



πŸ–ΌοΈ Screenshots

Main Interface
Single Conversion Mode
Clean, modern dark theme with intuitive controls
Batch Processing
Batch Processing
Process hundreds of images with real-time progress tracking
Image Adjustments
Advanced Adjustments
Fine-tune brightness, contrast, saturation, and sharpness



✨ Features

🎯 Modern Format Support

  • πŸ“Έ JPEG - Universal photo format
  • πŸ–ΌοΈ PNG - Lossless with transparency
  • 🌐 WebP - 25-34% smaller than JPEG
  • ⚑ AVIF - Next-gen compression
  • 🍎 HEIC - iPhone photo format
  • 🎬 GIF - Animated images
  • πŸ–¨οΈ TIFF - Professional quality
  • πŸ“„ BMP, ICO, PDF - Additional formats

⚑ Core Capabilities

  • πŸ”„ Single & Batch Conversion
  • 🎯 Drag & Drop Support
  • ⏯️ Pause/Resume/Stop Controls
  • πŸ“Š Real-time Progress Tracking
  • πŸ’Ύ Smart Preset System
  • 🎨 Image Adjustments
  • πŸ” Metadata Management
  • ⌨️ Keyboard Shortcuts

πŸ’Ž Smart Preset System

Save your favorite settings as reusable presets:

Preset Description Best For
πŸ“± Web Optimization WebP format, compressed, metadata stripped Website delivery
πŸ“· Social Media JPG 1080Γ—1080, high quality Instagram/Facebook
πŸ–¨οΈ Print Quality Lossless TIFF, maximum resolution Professional printing
πŸ“§ Email Friendly Small file size, optimized Email attachments
πŸ”’ Privacy Safe All metadata removed including GPS Public sharing

πŸŽ›οΈ Professional Image Adjustments


Brightness
Lighten or darken

Contrast
Enhance details

Saturation
Adjust colors

Sharpness
Add clarity

Additional Features:

  • πŸ“ Resize with aspect ratio lock
  • πŸ”„ Multiple resampling methods (Lanczos, Bicubic, Bilinear, Nearest)
  • πŸ“Š Quality control with real-time preview
  • πŸ” Privacy controls for metadata



πŸ“₯ Installation

πŸ“‹ Prerequisites

Required: Python 3.8 or higher | pip package manager


πŸ”§ Installation Steps

Step 1: Clone the Repository

git clone https://github.com/yourusername/image-converter-pro.git
cd image-converter-pro

Step 2: Install Dependencies

Essential packages (required):

pip install PySide6 Pillow

Optional packages (for advanced formats):

# For AVIF support (recommended)
pip install pillow-avif-plugin

# For HEIC/HEIF support (iPhone photos)
pip install pillow-heif

Step 3: Run the Application

python main.py

πŸ’‘ Tip: Create a virtual environment first:

python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt



πŸ“– Usage

πŸš€ Quick Start Guide

πŸ–ΌοΈ Single Image Conversion (Click to expand)

1. Load an Image

  • Click "Select Image" button
  • OR Press Ctrl+O
  • OR Drag & drop an image into the preview area

2. Choose Format

  • Select output format from dropdown
  • View format description and recommendations

3. Adjust Settings (Optional)

  • 🎚️ Quality: Adjust slider for lossy formats
  • πŸ“ Resize: Enable resize and set dimensions
  • 🎨 Adjustments: Fine-tune image properties
  • πŸ“‹ Metadata: Configure EXIF data handling

4. Convert

  • Click "Convert & Save" or press F5
  • Choose output location
  • βœ… Done!
πŸ“¦ Batch Processing (Click to expand)

1. Add Images

  • Click "Add Files" to select multiple images
  • OR Click "Add Folder" to add all images from a directory
  • OR Drag & drop multiple files

2. Configure Settings

  • Settings from Single Conversion tab apply to batch
  • OR Load a preset for consistent processing

3. Process

  • Click "Process Batch" to start
  • Monitor real-time progress
  • Use Pause/Resume/Stop controls as needed

⌨️ Keyboard Shortcuts

Shortcut Action
Ctrl+OOpen Image
Ctrl+Shift+OOpen Multiple Images
Ctrl+SSave/Convert
F5Convert Image
Ctrl+BAdd to Batch
Ctrl+Shift+CClear Batch Queue
Ctrl+QQuit Application
F1Show Keyboard Shortcuts
+ / -Zoom In/Out Preview



πŸ’‘ Usage Tips

πŸ“Š Format Recommendations

🌐 For Web Use
  • Use WebP at 80-85% quality for best size/quality balance
  • Or AVIF at 70-80% for cutting-edge compression
  • Modern browsers support both formats (93%+ coverage)
🎨 For Photos with Transparency
  • Use PNG for lossless quality
  • Or WebP for smaller file size with transparency support
πŸ–¨οΈ For Maximum Quality
  • Use TIFF or PNG (both lossless)
  • Perfect for archival and professional printing
πŸ“§ For Email/Sharing
  • Use JPEG at 75-80% quality
  • Enable resize to 1280Γ—720 or smaller
  • Use "Email Friendly" preset for optimal settings
πŸ“± For Social Media
  • Instagram/Facebook: JPEG at 90% quality, 1080Γ—1080 or 1920Γ—1080
  • Use the "Social Media" preset for optimal settings

πŸ”’ Privacy & Metadata

⚠️ Important Privacy Tips:

  • βœ… Strip GPS when sharing photos publicly to protect your location
  • πŸ‘€ View Metadata before stripping to preserve important information
  • πŸ’Ύ Preserve EXIF for archival purposes (camera settings, dates)
  • ℹ️ Some formats (PNG, BMP) have limited EXIF support

πŸ“¦ Batch Processing Best Practices

1. πŸ§ͺ Test First       β†’ Process 1-2 sample images to verify settings
2. πŸ’Ύ Use Presets      β†’ Create presets for common workflows
3. πŸ‘€ Monitor Progress β†’ Watch the first few conversions for errors
4. πŸ’½ Check Disk Space β†’ Large batches require significant storage
5. βœ… Review Results   β†’ Enable "Open folder after save" to check output



πŸ—‚οΈ Project Structure

image-converter-pro/
β”‚
β”œβ”€β”€ πŸ“„ main.py                 # Main application entry point
β”œβ”€β”€ βš™οΈ config.py               # Configuration and preset management
β”œβ”€β”€ πŸ“‹ formats.py              # Format definitions and detection
β”œβ”€β”€ πŸ”§ processor.py            # Image processing engine
β”œβ”€β”€ πŸ”„ batch_processor.py      # Batch processing with threading
β”‚
β”œβ”€β”€ πŸ“– README.md               # This file
β”œβ”€β”€ πŸ“¦ requirements.txt        # Python dependencies
β”œβ”€β”€ πŸ“œ LICENSE                 # MIT License
β”‚
└── πŸ“ screenshots/            # Application screenshots
    β”œβ”€β”€ main-interface.png
    β”œβ”€β”€ batch-processing.png
    └── adjustments.png



πŸ› οΈ Technical Details

πŸ—οΈ Built With


PySide6
Qt for Python UI

Pillow
Image Processing

Python 3.8+
Programming Language

πŸ›οΈ Architecture

  • 🧩 Modular Design - Separated concerns for maintainability
  • 🧡 Threading - QThread for non-blocking batch processing
  • πŸ“‘ Signal/Slot - Event-driven architecture
  • πŸ’Ύ JSON Config - Persistent settings and presets
  • πŸ“ Type Hints - Full type annotation for code clarity

πŸ’» System Requirements

Minimum Recommended
  • Python 3.8+
  • 4GB RAM
  • 100MB disk space
  • Python 3.10+
  • 8GB RAM
  • SSD storage
  • Multi-core CPU



πŸ› Troubleshooting

⚠️ Common Issues

❌ "AVIF format not supported"
pip install pillow-avif-plugin
❌ "HEIC format not supported"
pip install pillow-heif
❌ "WebP format not supported"
pip install pillow[webp]
❌ "Module not found: PySide6"
pip install PySide6
❌ "No module named PIL"
pip install Pillow

🐌 Performance Issues

Issue Solution
Slow batch processing Reduce batch size or disable adjustments
High memory usage Enable resize for very large images
Slow preview Disable real-time adjustments for large files



🀝 Contributing

Contributions are welcome! Here's how you can help:

πŸ“ Contribution Process

# 1. Fork the Repository
# 2. Create a Feature Branch
git checkout -b feature/AmazingFeature

# 3. Commit Your Changes
git commit -m 'Add some AmazingFeature'

# 4. Push to the Branch
git push origin feature/AmazingFeature

# 5. Open a Pull Request

πŸ’‘ Ideas for Contributions

  • πŸ†• Add new image formats (JPEG XL, JXR)
  • 🎨 Implement additional filters (blur, edge detection)
  • 🏷️ Add watermarking functionality
  • β˜€οΈ Create light theme option
  • ⚑ Improve batch processing performance
  • ☁️ Add cloud storage integration
  • ↩️ Implement undo/redo for settings
  • πŸ–₯️ Add command-line interface
  • πŸ”Œ Create plugin system



πŸ“ License

This project is licensed under the MIT License.

View Full License
MIT License

Copyright (c) 2025 Image Converter Pro

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



πŸ™ Acknowledgments

🎨
XnConvert & IrfanView
Feature Inspiration
🎭
Material Design
Design Principles
πŸ–ΌοΈ
Pillow Team
Image Library
⚑
Qt Project
UI Framework



πŸ“ž Support




Report Bugs
GitHub Issues



Documentation
Usage Guide



Get Help
Troubleshooting



πŸ—“οΈ Changelog

Version 1.0.0 (2025)

+ Initial release
+ Single and batch conversion
+ Modern dark theme interface
+ Support for 10+ image formats
+ Image adjustments (brightness, contrast, saturation, sharpness)
+ Preset system with 5 built-in presets
+ Metadata viewer and privacy controls
+ Comprehensive keyboard shortcuts
+ Multi-threaded batch processing
+ Drag & drop support



🌟 Star History

If you find this project useful, please consider giving it a star! ⭐

Star History Chart




Made with ❀️ and Python


GitHub followers GitHub stars GitHub forks


⬆ Back to Top

# 🎨 Image Converter Pro

Python Version License Platform Status

A professional, feature-rich image conversion tool built with PySide6

Features β€’ Installation β€’ Usage β€’ Screenshots β€’ Contributing


πŸ“Έ Screenshots

Main Interface - Single Conversion

Main Interface Clean, modern dark theme with intuitive controls

Batch Processing

Batch Processing Process hundreds of images at once with real-time progress tracking

Image Adjustments

Adjustments Fine-tune brightness, contrast, saturation, and sharpness


✨ Features

🎯 Modern Format Support

  • JPEG - Universal photo format with adjustable quality
  • PNG - Lossless compression with transparency support
  • WebP - Modern web format (25-34% smaller than JPEG)
  • AVIF - Next-gen format with superior compression (93%+ browser support)
  • HEIC - Apple's iPhone photo format (read-only for conversion)
  • GIF - Animated images with transparency
  • TIFF - Professional/print quality format
  • BMP, ICO, PDF - Additional format support

⚑ Core Capabilities

Single & Batch Conversion

  • Convert one image or process hundreds at once
  • Drag & drop support for quick workflows
  • Real-time progress tracking with pause/resume/stop controls
  • Visual success/failure indicators

Smart Preset System

Save your favorite settings as reusable presets:

  • πŸ“± Web Optimization - WebP format, compressed, metadata stripped
  • πŸ“· Social Media - Perfect for Instagram/Facebook
  • πŸ–¨οΈ Print Quality - Lossless TIFF, maximum resolution
  • πŸ“§ Email Friendly - Optimized file size for attachments
  • πŸ”’ Privacy Safe - All metadata removed including GPS

Professional Image Adjustments

  • Brightness - Lighten or darken images
  • Contrast - Enhance or reduce contrast
  • Saturation - Adjust color intensity
  • Sharpness - Add or reduce sharpness
  • Resize - Scale images with aspect ratio lock
  • Resampling - Choose from Lanczos, Bicubic, Bilinear, or Nearest

Advanced Features

  • πŸ” Metadata Viewer - View and manage EXIF data
  • πŸ” Privacy Controls - Strip GPS location while preserving other data
  • πŸ“Š Quality Control - Adjustable quality slider with real-time feedback
  • 🎨 Dark Theme - Modern, professional interface
  • ⌨️ Keyboard Shortcuts - Full keyboard navigation support
  • πŸ“ Smart File Management - Recent files, custom output folders

πŸš€ Installation

Prerequisites

  • Python 3.8 or higher
  • pip (Python package manager)

Step 1: Clone the Repository

git clone https://github.com/yourusername/image-converter-pro.git
cd image-converter-pro

Step 2: Install Dependencies

Essential packages:

pip install PySide6 Pillow

Optional - Advanced format support:

# For AVIF support (recommended)
pip install pillow-avif-plugin

# For HEIC/HEIF support (iPhone photos)
pip install pillow-heif

Step 3: Run the Application

python main.py

πŸ“– Usage

Quick Start Guide

Single Image Conversion

  1. Load an Image

    • Click "Select Image" or press Ctrl+O
    • Or drag & drop an image into the preview area
  2. Choose Format

    • Select your desired output format from the dropdown
    • View format description and recommendations
  3. Adjust Settings (Optional)

    • Set quality level for lossy formats
    • Enable resize and set dimensions
    • Fine-tune brightness, contrast, saturation, sharpness
    • Configure metadata options
  4. Convert

    • Click "Convert & Save" or press F5
    • Choose output location
    • Done! πŸŽ‰

Batch Processing

  1. Add Images

    • Switch to "Batch Processing" tab
    • Click "Add Files" to select multiple images
    • Or click "Add Folder" to add all images from a directory
    • Or drag & drop multiple files
  2. Configure Settings

    • Settings from Single Conversion tab apply to all images
    • Or load a preset for consistent processing
  3. Process

    • Click "Process Batch"
    • Monitor real-time progress
    • Use Pause/Resume/Stop controls as needed

Keyboard Shortcuts

Shortcut Action
Ctrl+O Open Image
Ctrl+Shift+O Open Multiple Images
Ctrl+S Save/Convert
F5 Convert Image
Ctrl+B Add to Batch
Ctrl+Shift+C Clear Batch Queue
Ctrl+Q Quit Application
F1 Show Keyboard Shortcuts
+ / - Zoom In/Out Preview

πŸ’‘ Usage Tips

Format Recommendations

For Web Use:

  • Use WebP at 80-85% quality for best size/quality balance
  • Or AVIF at 70-80% for cutting-edge compression

For Photos with Transparency:

  • Use PNG for lossless quality
  • Or WebP for smaller file size

For Maximum Quality:

  • Use TIFF or PNG (lossless)

For Email/Sharing:

  • Use JPEG at 75-80% quality
  • Enable resize to 1280x720 or smaller

For Social Media:

  • Instagram/Facebook: JPEG at 90% quality, 1080x1080 or 1920x1080
  • Use the "Social Media" preset for optimal settings

Batch Processing Best Practices

  1. Test First - Process 1-2 sample images to verify settings
  2. Use Presets - Create presets for common workflows
  3. Monitor Progress - Watch the first few conversions for errors
  4. Check Disk Space - Large batches require significant storage
  5. Review Results - Enable "Open folder after save" to check output

Privacy & Metadata

  • Strip GPS when sharing photos publicly to protect your location
  • View Metadata before stripping to preserve important information
  • Preserve EXIF for archival purposes (camera settings, dates)
  • Some formats (PNG, BMP) have limited EXIF support

πŸ—‚οΈ Project Structure

image-converter-pro/
β”œβ”€β”€ main.py                 # Main application entry point
β”œβ”€β”€ config.py              # Configuration and preset management
β”œβ”€β”€ formats.py             # Format definitions and detection
β”œβ”€β”€ processor.py           # Image processing engine
β”œβ”€β”€ batch_processor.py     # Batch processing with threading
β”œβ”€β”€ README.md              # This file
β”œβ”€β”€ requirements.txt       # Python dependencies
β”œβ”€β”€ screenshots/           # Application screenshots
β”‚   β”œβ”€β”€ main-interface.png
β”‚   β”œβ”€β”€ batch-processing.png
β”‚   └── adjustments.png
└── LICENSE               # MIT License

πŸ› οΈ Technical Details

Built With

  • PySide6 - Qt for Python (UI framework)
  • Pillow (PIL) - Python Imaging Library (image processing)
  • Python 3.8+ - Programming language

Architecture

  • Modular Design - Separated concerns for maintainability
  • Threading - QThread for non-blocking batch processing
  • Signal/Slot - Event-driven architecture
  • JSON Config - Persistent settings and presets
  • Type Hints - Full type annotation for code clarity

System Requirements

Minimum:

  • Python 3.8+
  • 4GB RAM
  • 100MB disk space

Recommended:

  • Python 3.10+
  • 8GB RAM
  • SSD for faster processing
  • Multi-core CPU for batch operations

πŸ› Troubleshooting

Format Support Issues

"AVIF format not supported"

pip install pillow-avif-plugin

"HEIC format not supported"

pip install pillow-heif

"WebP format not supported"

pip install pillow[webp]

Performance Issues

  • Slow batch processing - Reduce batch size or enable fewer adjustments
  • High memory usage - Enable resize for very large images
  • Slow preview - Disable real-time adjustments for large files

Common Errors

"Module not found: PySide6"

pip install PySide6

"No module named PIL"

pip install Pillow

"Image fails to convert"

  • Check if output format is writable (HEIC is read-only)
  • Verify disk space is available
  • Try converting to a different format

🀝 Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the Repository
  2. Create a Feature Branch
    git checkout -b feature/AmazingFeature
  3. Commit Your Changes
    git commit -m 'Add some AmazingFeature'
  4. Push to the Branch
    git push origin feature/AmazingFeature
  5. Open a Pull Request

Ideas for Contributions

  • Add new image formats (JPEG XL, JXR, etc.)
  • Implement additional filters (blur, edge detection, etc.)
  • Add watermarking functionality
  • Create light theme option
  • Improve batch processing performance
  • Add cloud storage integration
  • Implement undo/redo for settings
  • Add command-line interface
  • Create plugin system for extensions

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

MIT License

Copyright (c) 2025 Image Converter Pro

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

πŸ™ Acknowledgments

  • XnConvert & IrfanView - Inspiration for features and workflow
  • Material Design - Color palette and design principles
  • Pillow Team - Excellent image processing library
  • Qt Project - Powerful cross-platform UI framework

πŸ“ž Support

  • Issues - Report bugs via GitHub Issues
  • Documentation - Check this README for detailed information
  • Dependencies - Verify all packages are installed correctly

πŸ—“οΈ Changelog

Version 1.0.0 (2025)

  • πŸŽ‰ Initial release
  • ✨ Single and batch conversion
  • 🎨 Modern dark theme interface
  • πŸ“¦ Support for 10+ image formats (JPEG, PNG, WebP, AVIF, HEIC, etc.)
  • πŸŽ›οΈ Image adjustments (brightness, contrast, saturation, sharpness)
  • πŸ“‹ Preset system with 5 built-in presets
  • πŸ” Metadata viewer and privacy controls
  • ⌨️ Comprehensive keyboard shortcuts
  • 🧡 Multi-threaded batch processing
  • πŸ“± Drag & drop support

🌟 Star History

If you find this project useful, please consider giving it a star! ⭐


Made with ❀️ and Python

⬆ Back to Top

About

Python app for converting images to grayscale and / or to invert the image

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages