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()