File size: 2,555 Bytes
c7159bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
"""
Generate placeholder example images for the Gradio UI examples panel.
Run once before publishing to HuggingFace Spaces.

  python create_example_assets.py
"""

import os
import numpy as np
from PIL import Image, ImageDraw, ImageFont

EXAMPLES = [
    ("example_shirt.jpg",    "Shirt",    (200, 210, 230)),
    ("example_tshirt.jpg",   "T-Shirt",  (230, 200, 200)),
    ("example_dress.jpg",    "Dress",    (200, 230, 210)),
    ("example_trousers.jpg", "Trousers", (210, 200, 230)),
]


def draw_wrinkle_lines(draw, x0, y0, x1, y1, color, n=12):
    """Draw random curved wrinkle lines within a bounding box."""
    import random
    rng = random.Random(42)
    for _ in range(n):
        y = rng.randint(y0, y1)
        pts = []
        for xi in range(x0, x1, 4):
            yi = y + rng.randint(-6, 6)
            pts.append((xi, yi))
        for i in range(len(pts) - 1):
            draw.line([pts[i], pts[i + 1]], fill=color, width=1)


def create_placeholder(filename: str, label: str, color: tuple):
    W, H = 400, 600
    img  = Image.new("RGB", (W, H), (245, 245, 245))
    draw = ImageDraw.Draw(img)

    # body silhouette
    draw.ellipse([130, 30, 270, 140],   fill=(210, 180, 140))   # head
    draw.rectangle([120, 140, 280, 420], fill=color)             # torso / shirt
    draw.rectangle([120, 420, 195, 590], fill=(180, 160, 120))  # left leg
    draw.rectangle([205, 420, 280, 590], fill=(180, 160, 120))  # right leg
    draw.rectangle([60,  150, 120, 330], fill=color)             # left arm
    draw.rectangle([280, 150, 340, 330], fill=color)             # right arm

    # wrinkle lines on shirt
    wrinkle_color = tuple(max(c - 40, 0) for c in color)
    draw_wrinkle_lines(draw, 125, 160, 275, 410, wrinkle_color, n=18)
    draw_wrinkle_lines(draw, 65,  155, 115, 325, wrinkle_color, n=8)
    draw_wrinkle_lines(draw, 285, 155, 335, 325, wrinkle_color, n=8)

    # label
    try:
        font = ImageFont.truetype(
            "/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf", 20
        )
    except Exception:
        font = ImageFont.load_default()

    draw.rectangle([0, 0, W, 36], fill=(40, 40, 40))
    draw.text((10, 8), f"Example: {label} (wrinkled)", fill=(255, 255, 255), font=font)

    out_path = os.path.join("assets", filename)
    img.save(out_path, quality=92)
    print(f"  Saved {out_path}")


if __name__ == "__main__":
    os.makedirs("assets", exist_ok=True)
    for fname, lbl, col in EXAMPLES:
        create_placeholder(fname, lbl, col)
    print("Done — example assets saved to assets/")