File size: 1,005 Bytes
de1e3fc | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | """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()
|