background local helper script

This commit is contained in:
juvilius 2023-07-24 16:18:41 +02:00
parent b8011837e9
commit bfd1ecabeb
Signed by untrusted user who does not match committer: julius
GPG Key ID: 3EAC91A848E1D685
3 changed files with 52 additions and 13 deletions

39
background.py Normal file
View File

@ -0,0 +1,39 @@
import random
import json
from main import make_wallpaper
palettes = [
{"colours": ["#eee4ab", "#e5cb9f", "#99c4c8", "#68a7ad"], "votes": 100000},
{"colours": ["#e4d192", "#cba0ae", "#af7ab3", "#80558c"], "votes": 100000},
{"colours": ["#eeeeee", "#e1d4bb", "#cbb279", "#537188"], "votes": 100000},
{"colours": ["#c0dbea", "#ba90c6", "#e8a0bf", "#fdf4f5"], "votes": 100000},
{"colours": ["#f5ffc9", "#b3e5be", "#a86464", "#804674"], "votes": 100000},
{"colours": ["#ffde7d", "#f6416c", "#f8f3d4", "#00b8a9"], "votes": 100000},
{"colours": ["#53354a", "#903749", "#e84545", "#2b2e4a"], "votes": 100000},
{"colours": ["#967e76", "#d7c0ae", "#eee3cb", "#b7c4cf"], "votes": 100000},
{"colours": ["#fc5185", "#f5f5f5", "#3fc1c9", "#364f6b"], "votes": 100000},
{"colours": ["#eaeaea", "#ff2e63", "#252a34", "#08d9d6"], "votes": 100000},
{"colours": ["#eeeeee", "#00adb5", "#393e46", "#222831"], "votes": 100000},
{"colours": ["#2cd3e1", "#a459d1", "#f266ab", "#ffb84c"], "votes": 100000},
{"colours": ["#ffe194", "#e8f6ef", "#1b9c85", "#4c4c6d"], "votes": 100000},
{"colours": ["#146c94", "#19a7ce", "#b0daff", "#feff86"], "votes": 100000},
{"colours": ["#4c3d3d", "#c07f00", "#ffd95a", "#fff7d4"], "votes": 100000},
{"colours": ["#8bacaa", "#b04759", "#e76161", "#f99b7d"], "votes": 100000},
{"colours": ["#146c94", "#19a7ce", "#afd3e2", "#f6f1f1"], "votes": 100000},
{"colours": ["#9ba4b5", "#212a3e", "#394867", "#f1f6f9"], "votes": 100000},
{"colours": ["#00ffca", "#05bfdb", "#088395", "#0a4d68"], "votes": 100000},
{"colours": ["#7c9070", "#9ca777", "#fee8b0", "#f97b22"], "votes": 100000},
{"colours": ["#002a19", "#000000", "#ffffff", "#e0512f"], "votes": 100000},
]
with open("popular.json", "r") as f:
palettes += json.load(f)
palette = random.choice(palettes)
colours = ["black"] + palette["colours"]
with open("current_speckles.png", "wb") as f:
b = make_wallpaper(
",".join(colours), fileformat="png", size=2.1, density=0.3, local=True
)
# for body in b.body_iterator:
# print(body)

22
main.py
View File

@ -1,17 +1,12 @@
import io
import logging
import itertools
import json
import logging
import random
from collections import Counter
from copy import deepcopy
from datetime import datetime
from pathlib import Path
import matplotlib.pyplot as plt
import numpy as np
import uvicorn
from fastapi import FastAPI, Response
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import StreamingResponse
@ -48,6 +43,7 @@ def make_wallpaper(
size: float | None = 3,
fileformat: str = "svg",
orientation: str | None = "landscape",
local: bool = False,
):
if not fileformat in MEDIA_TYPES:
return
@ -59,12 +55,12 @@ def make_wallpaper(
x, y = (1920, 1080)
elif "x" in orientation:
resolution = orientation.split("x")
if len(resolution) !=2 :
if len(resolution) != 2:
logging.critical("input resolution has more or less than 2 dimensions")
return
x,y = resolution
x, y = resolution
if all([x.isdigit(), y.isdigit()]):
x,y = int(x), int(y)
x, y = int(x), int(y)
else:
return
else:
@ -103,6 +99,12 @@ def make_wallpaper(
pad_inches=0,
)
buf.seek(0)
if local:
filename = f"speckles.{fileformat}"
with open(filename, "wb") as f:
f.write(buf.getbuffer())
return filename
else:
return StreamingResponse(content=buf, media_type=MEDIA_TYPES[fileformat])
buf.close()

View File

@ -1,8 +1,6 @@
import itertools
import json
import random
from collections import Counter
from datetime import datetime
from pathlib import Path
import matplotlib.pyplot as plt