Dither-Pro is a high-performance, feature-rich dithering tool designed for artists and developers seeking granular control over image processing. Built with Python and a modern PySide6 interface, it provides a responsive and powerful workflow for transforming images into stylized, limited-color works of art. The backend is heavily optimized with Numba and NumPy for a fluid, real-time user experience.
- Extensive Algorithm Library: Go beyond the basics with a wide selection of dithering algorithms, each providing a unique aesthetic:
- Error-Diffusion: Floyd-Steinberg, Atkinson, Jarvis, Judice, Ninke (JJN), Stucki
- Ordered: Bayer, Clustered Dot Halftone
- Stochastic: Random
- Complete Palette Control: Precisely define the color space of your output image.
- Automatic: Generate an optimal palette directly from the source image.
- Grayscale: Convert the image to a specified number of grayscale tones.
- Predefined: Apply classic, retro palettes like Game Boy, PICO-8, and CGA.
- Real-Time Post-Processing: Interactively adjust the dithered output without re-rendering.
- HSV Color Adjustment: Modify the Hue, Saturation, and Value of the final dithered palette in real-time.
- Color Grading LUTs: Apply post-process Look-Up Tables (LUTs) for effects like Sepia, Invert, and Cool Tone.
- Fine-Grained Adjustments: Control the number of output colors (2-256) and the overall strength of the dithering effect.
- Modern & Responsive UI: A clean, tabbed dark-theme interface built with PySide6 that is intuitive and scales correctly.
- High-Performance Backend: Core algorithms are JIT-compiled with Numba or vectorized with NumPy to handle large images with minimal delay.
Follow these instructions to get Dither-Pro running on your local machine.
- Python 3.8 or newer
pip(Python package installer)
-
Clone the repository:
git clone https://github.com/dovvnloading/Dither-Pro.git cd Dither-Pro -
Create a virtual environment (Recommended):
python -m venv venv # On Windows .\venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Install the required dependencies: A
requirements.txtfile is provided for easy installation.pip install -r requirements.txt
The dependencies are:
PySide6,numpy,numba,Pillow. -
Run the application:
python Dither_app.py
For developers using Visual Studio, a .sln solution file is included in the repository for convenience. This allows you to open the project directly in Visual Studio with the Python workload installed.
The project is structured into four main files for a clean separation of concerns:
Dither_app.py: The main application entry point, containing all UI code (QMainWindow).worker.py: Defines theQObjectworker for multithreaded image processing.algorithms.py: Contains all dithering algorithms and performance-critical functions. This module is UI-agnostic.utils.py: Contains helper classes and functions, such as the LUT application logic.
This project is licensed under the MIT License - see the LICENSE file for details.
