Skip to content

dovvnloading/Dither-Pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 

Repository files navigation

Dither-Pro

Python PySide6 Numba License GitHub Stars GitHub Forks GitHub Issues GitHub Last Commit

Overview

Dither-Pro is a high-performance image dithering toolkit designed for digital artists, game developers, and retro aesthetic enthusiasts. Built with a responsive PySide6 interface and accelerated by Numba's JIT compilation, it provides real-time processing of advanced error-diffusion and ordered dithering algorithms.

Dither-Pro goes beyond standard image converters by offering granular control over pixel distribution, palette quantization, and post-processing, allowing you to easily achieve precise, high-fidelity vintage effects.

Key Features

Advanced Dithering Engine

  • Error Diffusion: Includes Floyd-Steinberg, Atkinson, Jarvis-Judice-Ninke (JJN), and Stucki algorithms.
  • Ordered Dithering: Supports structured patterns like Bayer Matrix (8x8) and Clustered Dot Halftoning.
  • Stochastic Dithering: Uses controlled randomness to minimize banding and generate organic textures.
  • Variable Strength: Blend original and dithered images for precise intensity control.

Dynamic Palette Management

  • Smart Quantization: Auto-generate optimized color palettes directly from source images while preserving fidelity.
  • Retro Presets: Built-in classic palettes including Game Boy, PICO-8, and CGA.
  • Color Control: Fine-tune outputs with adjustable color counts (ranging from 2 to 256 colors) and dedicated grayscale support.

Real-Time Post-Processing

  • HSV Tuning: Non-destructive adjustments to Hue, Saturation, and Value directly on the dithered output.
  • LUT Support: Apply Look-Up Tables (LUTs) for sophisticated, immediate color grading.
  • Optimized Pipeline: Instant visual feedback powered by vectorized NumPy operations and Numba acceleration.

Installation

Prerequisites

  • Python 3.8+
  • pip

Setup

  1. Clone the Repository

    git clone https://github.com/dovvnloading/Dither-Pro.git
    cd Dither-Pro
  2. Create and Activate a Virtual Environment

    # Windows
    python -m venv venv
    .\venv\Scripts\activate
    
    # macOS/Linux
    python3 -m venv venv
    source venv/bin/activate
  3. Install Dependencies

    pip install -r requirements.txt
  4. Run the Application

    python Dither_app/Dither_app/Dither_app.py

Usage Workflow

The UI is divided into three primary panels for efficient image manipulation:

  1. Dithering Workspace: The core hub. Select your preferred algorithm, set the dithering strength, dictate the color count, and apply either smart-generated or preset palettes.
  2. Color Adjustment Panel: Fine-tune your result using real-time sliders to globally shift Hue, adjust Saturation levels, and control overall Value (brightness/contrast).
  3. Grading Suite: Load and apply LUTs to completely transform the mood and stylistic aesthetic of your final image with a single click.

Technical Architecture

Dither-Pro is built with a focus on non-blocking performance and maintainability:

  • UI Layer: Built with PySide6 for a native, cross-platform graphical user interface.
  • Concurrency: Utilizes QThread workers to offload computationally heavy processing from the main UI thread, ensuring the interface never freezes.
  • High-Performance Computation: Core dithering algorithms (located in algorithms.py) are strictly optimized with numba (JIT) and vectorized NumPy operations, achieving near-C speeds for high-resolution asset processing.

License

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

About

A high-performance dithering tool with extensive algorithms, real-time palette shifting, and LUTs. Built with Python, PySide6, and Numba for a fluid workflow.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages