40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""
|
|
Run-once script to split domains.jpg into individual card images.
|
|
|
|
Grid: 7 columns x 10 rows (left-to-right, top-to-bottom)
|
|
Output: images/domains/domain_r{row}c{col}.jpg (1-indexed)
|
|
"""
|
|
|
|
from pathlib import Path
|
|
from PIL import Image
|
|
|
|
SOURCE = Path("images/domains.jpg")
|
|
OUT_DIR = Path("images/domains")
|
|
COLS = 10
|
|
ROWS = 7
|
|
TRIM = 2 # pixels to shave from each edge after splitting
|
|
|
|
OUT_DIR.mkdir(parents=True, exist_ok=True)
|
|
|
|
img = Image.open(SOURCE)
|
|
W, H = img.size
|
|
print(f"Source: {W}x{H}px → cell size before trim: {W//COLS}x{H//ROWS}px")
|
|
|
|
cell_w = W / COLS
|
|
cell_h = H / ROWS
|
|
|
|
for row in range(ROWS):
|
|
for col in range(COLS):
|
|
left = round(col * cell_w)
|
|
top = round(row * cell_h)
|
|
right = round((col + 1) * cell_w)
|
|
bottom = round((row + 1) * cell_h)
|
|
|
|
card = img.crop((left, top, right, bottom))
|
|
card = card.crop((TRIM, TRIM, card.width - TRIM, card.height - TRIM))
|
|
|
|
name = f"domain_r{row+1:02d}c{col+1:02d}.jpg"
|
|
card.save(OUT_DIR / name, quality=90)
|
|
|
|
print(f"Saved {ROWS * COLS} images to {OUT_DIR}/")
|