Skip to content

Latest commit

 

History

History
162 lines (116 loc) · 4.4 KB

File metadata and controls

162 lines (116 loc) · 4.4 KB

Photo Size Reducer

A modern, feature-rich photo size reducer application built with Python and PyQt6. Easily compress and resize your images with a beautiful graphical interface.

Python PyQt6 License Platform

Download

Pre-built executables available in Releases

  • macOS: Download .dmg or .app.zip - Double-click to install
  • Windows: Download .exe - Just run the executable
  • Linux/Source: See installation instructions below

Features

  • Drag & Drop Support - Simply drag images or folders into the application
  • Batch Processing - Process multiple images at once with progress tracking
  • Live Preview - See before/after comparison before processing
  • Compression Control - Adjust quality from 1-100%
  • Multiple Resize Options:
    • Resize by percentage (25%, 50%, 75%, or custom)
    • Max dimension with aspect ratio preservation
    • Custom dimensions
  • Multiple Output Formats - JPEG, PNG, WebP
  • Customizable Output - Set filename suffix and output folder
  • Size Savings Report - See exactly how much space you saved

Screenshot

Photo Size Reducer - Main Interface

The application features a clean, modern dark interface with drag & drop support, live preview, compression controls, and resize options.

Installation

Prerequisites

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

Install Dependencies

# Clone the repository
git clone https://github.com/nsozturk/photo-size-reducer.git
cd photo-size-reducer

# Install required packages
pip install -r requirements.txt

Requirements

  • PyQt6 >= 6.4.0
  • Pillow >= 10.0.0

Usage

Running the Application

python photo_reducer.py

How to Use

  1. Add Images

    • Drag and drop images/folders onto the drop zone
    • Or click "Browse Files..." to select images
  2. Adjust Settings

    • Set compression quality (1-100%)
    • Enable resizing if needed:
      • Choose percentage, max dimension, or custom size
    • Select output format (JPEG, PNG, WebP)
    • Set filename suffix (default: _reduced)
    • Choose output folder (default: same as source)
  3. Preview

    • Click on any file in the list to see before/after preview
    • Estimated file size shown in preview
  4. Process

    • Click "Process Images" to start
    • Watch the progress bar
    • Get a summary of total space saved

Supported Formats

Input Formats

  • JPEG (.jpg, .jpeg)
  • PNG (.png)
  • GIF (.gif)
  • BMP (.bmp)
  • WebP (.webp)
  • TIFF (.tiff)

Output Formats

  • JPEG - Best for photos, smaller file sizes
  • PNG - Best for graphics, supports transparency
  • WebP - Modern format, excellent compression

Configuration Options

Option Description Default
Quality Compression level (1-100%) 85%
Resize Enable/disable resizing Disabled
Percentage Resize by percentage 50%
Max Dimension Maximum width or height 1920px
Output Format JPEG, PNG, or WebP JPEG
Suffix Filename suffix _reduced

Building Standalone Executables

Want to build your own executables? See BUILD.md for detailed instructions on:

  • Building .app for macOS
  • Building .exe for Windows
  • Creating DMG/ZIP distributions
  • Automating builds with GitHub Actions
  • Code signing and troubleshooting

Quick Build:

# macOS
./build_macos.sh

# Windows
build_windows.bat

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  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

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

Author

Enes Ozturk

Acknowledgments

  • PyQt6 - GUI framework
  • Pillow - Image processing library

Made with Python and PyQt6