|
from colorthief import ColorThief |
|
from pathlib import Path |
|
import json |
|
from PIL import Image |
|
|
|
|
|
images_path = Path('frontend/static/images') |
|
images = images_path.glob("*.[jpeg jpg png]*") |
|
print(images) |
|
data = {} |
|
for image in images: |
|
print(image.stem) |
|
image_pil = Image.open(image) |
|
color_thief = ColorThief(image) |
|
image_pil.save(Path.joinpath(images_path, (image.stem + ".jpg")), optimize=True, quality=95) |
|
prompt = image.stem.split("-")[2] |
|
try: |
|
type(data[prompt]) == list |
|
except: |
|
data[prompt] = [] |
|
|
|
colors = color_thief.get_palette(color_count=5, quality=1) |
|
colors_hex = ['#%02x%02x%02x' % (color) for color in colors] |
|
data[prompt].append({ |
|
"colors": colors_hex, |
|
"imgURL": "static/images/" + image.stem + ".jpg" |
|
}) |
|
prompts = [{"prompt": prompt, "images": values} |
|
for (prompt, values) in data.items()] |
|
with open('frontend/static/data.json', 'w') as f: |
|
json.dump(prompts, f) |
|
|