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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file palettipy-0.0.1.tar.gz.
File metadata
- Download URL: palettipy-0.0.1.tar.gz
- Upload date:
- Size: 13.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e660a1fa7ef324eb2df34a6c395faf64e266ea84e3594b28405da5bd2323b9a
|
|
| MD5 |
e049f1c3e3e809501688ae4e10d6f665
|
|
| BLAKE2b-256 |
ebbcccef7d51cfe66a69171dcae5625ece568c553fa0b5370d7c0bb609804f1d
|
File details
Details for the file palettipy-0.0.1-py3-none-any.whl.
File metadata
- Download URL: palettipy-0.0.1-py3-none-any.whl
- Upload date:
- Size: 9.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
330adf518811ea0599902832ae1ebdf16bfb2a028546e3cf80bfb81a468742a6
|
|
| MD5 |
9bb3a81034f2a79e0d9697d044baabf8
|
|
| BLAKE2b-256 |
54959e3d7809a88b0022a614816dedb971774983480d2fb53508c45a2d150cfd
|