PawTrace / backend /scripts /make_sample_images.py
Elliott Duke
HomingPet: lost-dog reunification (FastAPI + React) with Render deploy
de1e3fc
Raw
History Blame Contribute Delete
1.01 kB
"""Generate deterministic synthetic dog-ish images for seeding/tests (no network, no real photos).
Each "dog" gets a distinct base pattern so the MockEmbedder produces stable (if not semantically
meaningful) vectors. Returns JPEG bytes.
"""
from __future__ import annotations
import io
from PIL import Image, ImageDraw
def make_image(seed: int, size: int = 256) -> bytes:
rng_r = (seed * 53) % 256
rng_g = (seed * 97) % 256
rng_b = (seed * 193) % 256
img = Image.new("RGB", (size, size), (rng_r, rng_g, rng_b))
draw = ImageDraw.Draw(img)
# A few shapes seeded by the id so distinct dogs differ visibly.
for i in range(6):
x = (seed * (i + 7)) % size
y = (seed * (i + 13)) % size
r = 20 + (seed * (i + 3)) % 60
color = ((rng_b + i * 30) % 256, (rng_r + i * 20) % 256, (rng_g + i * 40) % 256)
draw.ellipse([x, y, x + r, y + r], fill=color)
buf = io.BytesIO()
img.save(buf, format="JPEG", quality=85)
return buf.getvalue()