Skip to content

MRThugh/Formato-Image-Converter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

39 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Formato - Professional Image Studio 🎨✨

Python Version Framework License

Formato is a versatile, modern desktop application designed for batch image processing, optimization, and conversion. Built using the powerful PySide6 (Qt for Python) framework and the Pillow (PIL) imaging library, it provides an efficient, lightweight, and responsive workspace for creators and developers alike.

The codebase has been refactored into a clean, modular architecture. This separation of concerns improves performance, code readability, and makes it easily extensible for future feature integrations.


πŸš€ Core Features

  • Batch Processing: Concurrently convert files to widely-used formats including JPEG, PNG, WEBP, TIFF, BMP, and GIF.
  • Smart Compression: Adjust output quality manually or utilize smart compression to automatically approximate a target file size (in KB) using an efficient iterative search algorithm.
  • Smart Resizing: Resize images using Stretch, Fit (maintain aspect ratio), or Fill/Crop modes.
  • Advanced Adjustments: Fine-tune brightness, contrast, saturation, and sharpness using smooth sliders. Double-click any label to quickly reset its value.
  • Visual Filters: Apply pre-defined filters such as Grayscale, Auto-Contrast, Sharpen, Blur, Contour, Emboss, and Edge Enhance.
  • Metadata Management: Preserve original EXIF data or write custom metadata (Author, Copyright, and Description) to supported formats.
  • Advanced Watermarking: Load a PNG logo watermark, adjust its position (5 placement zones), scale, opacity, and custom pixel margins.
  • Live Interactive Preview: Pan (drag) and zoom (scroll) on an interactive graphics scene with integrated RAM image caching to deliver fast, real-time feedback.
  • PDF Builder: Merge selected queue images into a single, multi-page PDF document.
  • Icon & Favicon Generator: Generate individual resolution assets for web or app platforms and compile them into a unified multi-size .ico file.

πŸ›  Tech Stack

  • Core Language: Python 3.10+
  • Graphical User Interface: PySide6 (Qt6) with a customized, premium dark QSS theme.
  • Image Manipulation: Pillow (PIL)
  • Concurrency: Built-in multi-threading utilizing ThreadPoolExecutor to handle background image processing and thumbnail rendering, ensuring the main GUI remains responsive and lag-free.

πŸ“‚ Project Architecture

The repository is organized following clean-coding principles to separate data, logic, and interface elements:

formato_project/
β”‚
β”œβ”€β”€ assets/                    # Static assets (logos, icons, and favicon.ico)
β”‚   β”œβ”€β”€ logo.png
β”‚   └── icon.ico
β”‚
β”œβ”€β”€ core/                      # Image processing core using Pillow algorithms
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── image_processor.py
β”‚
β”œβ”€β”€ models/                    # Data representations and Model-View architectures
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── queue_model.py
β”‚
β”œβ”€β”€ views/                     # UI components, custom widgets, and windows
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ widgets.py             # Zoomable canvas, smooth scroll area, and delegate rendering
β”‚   └── main_window.py         # Primary window controller and interface setups
β”‚
β”œβ”€β”€ config.py                  # Static configurations, file paths, and CSS stylesheets
β”œβ”€β”€ utils.py                   # General-purpose utility and mathematical helpers
β”œβ”€β”€ requirements.txt           # Project dependencies
└── main.py                    # Application entry point

πŸ“¦ Installation & Setup

Ensure you have Python 3.10 or higher installed on your system.

  1. Clone the repository:
git clone https://github.com/MRThugh/Formato-Image-Converter.git
cd Formato-Image-Converter
  1. Install the required dependencies:
pip install -r requirements.txt
  1. Launch the application:
python main.py

βš™οΈ How to Use

  1. Manage the Queue: Add files using the βž• Add Files button or drag-and-drop images directly into the interface. Click any item to display its real-time preview. To remove an image, click the red deletion mark (Γ—) on the right side of the queue item.
  2. Configure Settings: Choose your destination format, resize parameters, rename rules (prefix/suffix), and any desired filters.
  3. Save/Load Presets: Easily export your preferred settings configurations via Save Preset as a JSON file, and reload them later using Load Preset.
  4. Choose Destination: Specify your output directory, then click πŸš€ START PROCESSING to run the concurrent batch converter.

🀝 Contributing

Contributions make the open-source community a better place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project.
  2. Create your 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.

πŸ“ License

Distributed under the MIT License. See the LICENSE file in the repository for more details.

About

🌌 Professional Image Studio | Multithreaded Batch Processor | Smart Compressor | Watermark Engine | PDF Builder | Icon & Favicon Generator | Built with Python & CustomTkinter.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages