-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathuser_imgs.py
More file actions
69 lines (57 loc) · 1.95 KB
/
user_imgs.py
File metadata and controls
69 lines (57 loc) · 1.95 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
import argparse
from pathlib import Path
import re
import sys
from zipfile import ZipFile
from PIL import Image, ImageDraw
from matplotlib import pyplot as plt
from matplotlib.patches import Rectangle
WIDTH_DEFAULT, HEIGHT_DEFAULT = (1280, 720)
def crop_relative(
img: Image.Image, left: float, upper: float, right: float, lower: float
):
return img.crop(
(
int(left * WIDTH_DEFAULT),
int(upper * HEIGHT_DEFAULT),
int(right * WIDTH_DEFAULT),
int(lower * HEIGHT_DEFAULT),
)
)
def add_box(
img, left: float, upper: float, right: float, lower: float, color="red", linewidth=1
):
img = img.copy()
xy1 = (int(left * WIDTH_DEFAULT), int(upper * HEIGHT_DEFAULT))
xy2 = (int(right * WIDTH_DEFAULT), int(lower * HEIGHT_DEFAULT))
draw = ImageDraw.Draw(img)
draw.rectangle((xy1, xy2), fill=None, outline=color, width=linewidth)
return img
if __name__ == "__main__":
parser = argparse.ArgumentParser(
description="A script to convert recotem Github Actions's img output to a tutorial page imgs."
)
CURRENT_DIR = Path(__file__).resolve().parent
parser.add_argument("input_zip_path", nargs=1)
args = parser.parse_args()
INPUT_ZIP_PATH = Path(args.input_zip_path[0])
OUTPUT_PATHS = [
CURRENT_DIR / "src" / "docs" / "user",
CURRENT_DIR / "src" / "ja" / "docs" / "user",
]
zf = ZipFile(INPUT_ZIP_PATH)
pngs = {
x.filename: Image.open(zf.open(x))
for x in zf.filelist
if re.search("user\/[^\.]+\.[^\.]+\.png", x.filename)
}
pagename: str
imgname: str
for key, img in pngs.items():
match = re.search("user\/([^\.]+)\.([^\.]+)\.png", key)
pagename, imgname = match.groups()
print(pagename, imgname)
for output_path in OUTPUT_PATHS:
dir = output_path / pagename
dir.mkdir(parents=True, exist_ok=True)
img.save(dir / f"{imgname}.png")