Converts images to pixel art using a fixed 16-colour palette (derived from a 4×4 colour grid source image).
# Setup
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# Run
python3 extract_palette_colours.py
python3 render_palette_grid.py # Optional
python3 convert_to_pixel_art.pyInputs:
input/original.jpeginput/colour-palette.png(a 4×4 grid of colours)
Outputs:
output/interim/palette_hex_4x4.jsonoutput/palette_grid.pngoutput/pixel-art-128x128.pngoutput/pixel-art-1536x1536.png
- Extracts the colour palette from
input/colour-palette.png - Downsamples the input image to 128×128
- Quantizes each pixel to the nearest colour in the extracted palette using Euclidean distance in RGB space
- Upscales the 128×128 version to 1536×1536 using nearest-neighbor resampling
- Python 3.7+
- Pillow 12.0+