-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate_test_images.py
More file actions
98 lines (77 loc) · 4.9 KB
/
create_test_images.py
File metadata and controls
98 lines (77 loc) · 4.9 KB
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/env python3
"""
Create test images for the cut generator example
"""
from PIL import Image, ImageDraw, ImageFont
from pathlib import Path
import os
FONT_CANDIDATES = [
Path(__file__).resolve().parent / "fonts" / "NotoSansJP-Bold.otf",
Path(__file__).resolve().parent / "fonts" / "NotoSansJP-Medium.otf",
Path("/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf"),
]
_font_cache = {}
def get_font(size=48):
"""Load a truetype font from bundled fonts (fallback to default)."""
if size in _font_cache:
return _font_cache[size]
for candidate in FONT_CANDIDATES:
if candidate.exists():
try:
font = ImageFont.truetype(str(candidate), size)
_font_cache[size] = font
return font
except OSError:
continue
font = ImageFont.load_default()
_font_cache[size] = font
return font
def create_test_image(folder, filename, color, text, size=(1920, 1080), rect_position=(0, 0), rect_size=(800, 600)):
"""Create a test image with a positioned rectangle and filename label"""
img = Image.new('RGBA', size, (0, 0, 0, 0))
draw = ImageDraw.Draw(img)
x, y = rect_position
w, h = rect_size
draw.rectangle([x, y, x + w, y + h], fill=color)
font = get_font(60)
label_x = x + 20
label_y = y + 20
draw.text((label_x, label_y), text, fill=(255, 255, 255, 255), font=font)
filepath = f'example/images/{folder}/{filename}'
img.save(filepath)
print(f'Created: {filepath}')
def main():
os.makedirs('example/images/BG', exist_ok=True)
os.makedirs('example/images/A', exist_ok=True)
os.makedirs('example/images/B', exist_ok=True)
os.makedirs('example/images/C', exist_ok=True)
os.makedirs('example/images/D', exist_ok=True)
# Background rectangles are ~1.5x larger to better fill the frame in samples
create_test_image('BG', '1.png', (100, 100, 100, 255), 'Background - 1', rect_position=(60, 15), rect_size=(1800, 1050))
create_test_image('BG', '2.png', (120, 120, 120, 255), 'Background - 2', rect_position=(60, 15), rect_size=(1800, 1050))
create_test_image('BG', '3.png', (140, 140, 140, 255), 'Background - 3', rect_position=(60, 15), rect_size=(1800, 1050))
create_test_image('BG', '4.png', (160, 160, 160, 255), 'Background - 4', rect_position=(60, 15), rect_size=(1800, 1050))
create_test_image('BG', '5.png', (180, 180, 180, 255), 'Background - 5', rect_position=(60, 15), rect_size=(1800, 1050))
create_test_image('A', '1.png', (255, 0, 0, 255), 'Layer A - 1', rect_position=(200, 300), rect_size=(800, 600))
create_test_image('A', '2.png', (200, 0, 0, 255), 'Layer A - 2', rect_position=(200, 300), rect_size=(800, 600))
create_test_image('A', '3.png', (180, 0, 0, 255), 'Layer A - 3', rect_position=(200, 300), rect_size=(800, 600))
create_test_image('A', '4.png', (160, 0, 0, 255), 'Layer A - 4', rect_position=(200, 300), rect_size=(800, 600))
create_test_image('A', '5.png', (140, 0, 0, 255), 'Layer A - 5', rect_position=(200, 300), rect_size=(800, 600))
create_test_image('B', '1.png', (0, 255, 0, 255), 'Layer B - 1', rect_position=(400, 200), rect_size=(700, 500))
create_test_image('B', '2.png', (0, 200, 0, 255), 'Layer B - 2', rect_position=(400, 200), rect_size=(700, 500))
create_test_image('B', '3.png', (0, 180, 0, 255), 'Layer B - 3', rect_position=(400, 200), rect_size=(700, 500))
create_test_image('B', '4.png', (0, 160, 0, 255), 'Layer B - 4', rect_position=(400, 200), rect_size=(700, 500))
create_test_image('B', '5.png', (0, 140, 0, 255), 'Layer B - 5', rect_position=(400, 200), rect_size=(700, 500))
create_test_image('C', '1.png', (0, 0, 255, 255), 'Layer C - 1', rect_position=(600, 400), rect_size=(600, 400))
create_test_image('C', '2.png', (0, 0, 200, 255), 'Layer C - 2', rect_position=(600, 400), rect_size=(600, 400))
create_test_image('C', '3.png', (0, 0, 180, 255), 'Layer C - 3', rect_position=(600, 400), rect_size=(600, 400))
create_test_image('C', '4.png', (0, 0, 160, 255), 'Layer C - 4', rect_position=(600, 400), rect_size=(600, 400))
create_test_image('C', '5.png', (0, 0, 140, 255), 'Layer C - 5', rect_position=(600, 400), rect_size=(600, 400))
create_test_image('D', '1.png', (255, 255, 0, 255), 'Layer D - 1', rect_position=(800, 100), rect_size=(500, 300))
create_test_image('D', '2.png', (200, 200, 0, 255), 'Layer D - 2', rect_position=(800, 100), rect_size=(500, 300))
create_test_image('D', '3.png', (180, 180, 0, 255), 'Layer D - 3', rect_position=(800, 100), rect_size=(500, 300))
create_test_image('D', '4.png', (160, 160, 0, 255), 'Layer D - 4', rect_position=(800, 100), rect_size=(500, 300))
create_test_image('D', '5.png', (140, 140, 0, 255), 'Layer D - 5', rect_position=(800, 100), rect_size=(500, 300))
print('Test images created successfully!')
if __name__ == '__main__':
main()