Download scripts/test_draw.py from KillerBoss/e-os-v4: direct link, hf CLI and curl.
- Browser
- Download file 2.05 kB
-
https://huggingface.co/KillerBoss/e-os-v4/resolve/main/scripts/test_draw.py
- Command line
-
hf download hf://KillerBoss/e-os-v4/scripts/test_draw.py
-
curl -L -o test_draw.py https://huggingface.co/KillerBoss/e-os-v4/resolve/main/scripts/test_draw.py
2.05 kB
| import sys, random, time | |
| sys.path.insert(0, "/home/z/my-project/scripts/os4") | |
| import os4_spec as S | |
| import os4_draw as D | |
| from PIL import Image | |
| def demo_scene(screen, tsec=12.3, **kw): | |
| st = dict( | |
| tsec=12.3, | |
| screen=screen, from_screen=1, trans=0.0, | |
| ripples=[(192, 416, 0.35, 0.9)], | |
| clock=(21, 44, 17), phase=21.75 / 24.0, hue=205, battery=87, | |
| music_playing=True, music_level=0.8, track=0, music_prog=0.37, | |
| calc_disp="128×4=512", calc_pressed=-1, | |
| weather_cond=2, temp=19, city="Berlin", wind=14, hum=61, rainp=40, | |
| toggles=[True, False, True, False], sel_hue=6, | |
| npu_label="NPU", params_m=0.94, fps=60, diag="Keine Abstürze", | |
| date="So 07.09.", toast="WLAN verbunden", nav_pressed=-1, drawer_sel=-1, | |
| ) | |
| st.update(kw) | |
| return st | |
| t0 = time.time() | |
| outs = [] | |
| for i, name in enumerate(S.SCREENS): | |
| s = demo_scene(i) | |
| if name == "LOCK": | |
| s["ripples"] = [] | |
| h = D.draw_scene(s, "hint") | |
| o = D.draw_scene(s, "styled") | |
| outs.append((name, h, o)) | |
| print("render 8 screens x2 themes: %.2fs" % (time.time() - t0)) | |
| # transition + preview sheet | |
| t0 = time.time() | |
| s = demo_scene(3, trans=0.5, from_screen=1) | |
| o = D.draw_scene(s, "styled") | |
| print("transition render: %.2fs" % (time.time() - t0)) | |
| W = 4 * (S.FULL_W + 8) | |
| Hh = 2 * (S.FULL_H + 8) | |
| sheet = Image.new("RGB", (W, Hh), (0, 0, 0)) | |
| for i, (name, h, o) in enumerate(outs): | |
| r, c = divmod(i, 4) | |
| sheet.paste(o, (c * (S.FULL_W + 8) + 4, r * (S.FULL_H + 8) + 4)) | |
| sheet.save("/home/z/my-project/data/einkos4/preview_styled.png") | |
| sheet2 = Image.new("RGB", (W, Hh), (0, 0, 0)) | |
| for i, (name, h, o) in enumerate(outs): | |
| r, c = divmod(i, 4) | |
| sheet2.paste(h, (c * (S.HINT_W * 2 + 8) + 4, r * (S.HINT_H * 2 + 8) + 4)) | |
| sheet2 = sheet2.crop((0, 0, W, Hh)) | |
| sheet2.save("/home/z/my-project/data/einkos4/preview_hint.png") | |
| import os | |
| print("sizes:", os.path.getsize("/home/z/my-project/data/einkos4/preview_styled.png"), | |
| os.path.getsize("/home/z/my-project/data/einkos4/preview_hint.png")) | |
| print("OK") | |