Match the colors of an image to a palette
Project description
Match the colors of an image to a palette
Installation
pip install palettipy
Example
example.py
import os
import sys
import time
from PIL import Image
from palettipy import palettes_loader, palettipy_image
from palettipy.palette import Palette
def main(args: list[str], palettes_path: str = "palettes"):
if len(args) <= 0 or len(args) >= 3:
print("Usage: example.py path/to/image [palette name]")
sys.exit(1)
print(args)
image_path = args[0]
if not os.path.exists(image_path):
print(f'Image "{image_path}" does not exist')
sys.exit(1)
palettes = palettes_loader.load_palettes(palettes_path)
palette_name = palettes[0].name
if len(args) > 1:
palette_name = args[1]
if palette_name not in [_p.name for _p in palettes]:
print(f'Palette "{palette_name}" does not exist')
sys.exit(1)
start = time.time()
palette: Palette = list(filter(lambda p: (p.name == palette_name), palettes))[0]
image = Image.open(image_path)
image_result = Image.fromarray(palettipy_image(palette, image))
image_result.save("output.png")
palette.log(f"Done in {(time.time() - start):.3f}s")
sys.exit(0)
if __name__ == "__main__":
main(sys.argv[1:])
python example.py path/to/image "Catppuccin Mocha"
Adding a palette
Single
To add a new palette, simply create a file in palettes
directory like below
Rainbow.txt
#ff6b6b
#ffd93d
#6bcb77
#4d96ff
Variants
If you have multiple variants of a palette, just create a subfolder under palettes
with all its variants in it
Rainbow/Pastel.txt
#ff6b6b
#ffd93d
#6bcb77
#4d96ff
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
palettipy-0.0.1.tar.gz
(13.7 MB
view hashes)
Built Distribution
Close
Hashes for palettipy-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 330adf518811ea0599902832ae1ebdf16bfb2a028546e3cf80bfb81a468742a6 |
|
MD5 | 9bb3a81034f2a79e0d9697d044baabf8 |
|
BLAKE2b-256 | 54959e3d7809a88b0022a614816dedb971774983480d2fb53508c45a2d150cfd |