From 3220b6aa644f2260ebad051ec97763fbb0ed5499 Mon Sep 17 00:00:00 2001 From: julius Date: Sun, 27 Oct 2024 20:21:22 +0100 Subject: [PATCH] jpg and png works --- background.py | 22 +++++++++++++++------- speckles.py | 6 ++++-- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/background.py b/background.py index ece4320..58e9b5f 100644 --- a/background.py +++ b/background.py @@ -1,9 +1,10 @@ -import random import json +import random -from main import make_wallpaper +from speckles import make_wallpaper palettes = [ + {"colours": ["#DE4A21", "#6F04F2", "#490B1C", "#4a9c9e"], "votes": 1000000}, {"colours": ["#eee4ab", "#e5cb9f", "#99c4c8", "#68a7ad"], "votes": 100000}, {"colours": ["#e4d192", "#cba0ae", "#af7ab3", "#80558c"], "votes": 100000}, {"colours": ["#eeeeee", "#e1d4bb", "#cbb279", "#537188"], "votes": 100000}, @@ -30,10 +31,17 @@ 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: +enabled_markers = "otY+xP*" +markers = random.choices(enabled_markers, k=random.randint(1, len(enabled_markers))) +for i, palette in enumerate(palettes): + colours = ["black"] + palette["colours"] b = make_wallpaper( - ",".join(colours), fileformat="png", size=2.1, density=0.3, local=True + ",".join(colours), + fileformat="png", + size=2.1, + density=0.2, + filename=f"wallpapers/speckles{i}_2880x1800.png", + perlin=True, + markers=enabled_markers, + orientation="2880x1800", ) - # for body in b.body_iterator: - # print(body) diff --git a/speckles.py b/speckles.py index 745bf42..67dea07 100644 --- a/speckles.py +++ b/speckles.py @@ -296,9 +296,11 @@ def make_wallpaper( if fileformat == "svg": buf = io.BytesIO(content.as_str().encode("utf-8")) buf.seek(0) - else: + elif fileformat in ["jpg", "png"]: with pyvips.Image.svgload_buffer(content.as_str().encode("utf-8")) as image: - buf = image.write_to_buffer("." + fileformat) + data = image.write_to_buffer("." + fileformat) + buf = io.BytesIO(data) + buf.seek(0) return StreamingResponse(content=buf, media_type=MEDIA_TYPES[fileformat])