-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcli.py
More file actions
76 lines (60 loc) · 2.12 KB
/
Copy pathcli.py
File metadata and controls
76 lines (60 loc) · 2.12 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
import argparse
from image_tools.processor import (
remove_background,
add_background,
resize_image,
enhance_image,
compress_image
)
from image_tools.batch import batch_compress
def main():
parser = argparse.ArgumentParser(description="Image Tools CLI")
sub = parser.add_subparsers(dest="command")
# remove-bg
r = sub.add_parser("remove-bg")
r.add_argument("input")
r.add_argument("output")
# add-bg
a = sub.add_parser("add-bg")
a.add_argument("input")
a.add_argument("output")
a.add_argument("--color", default="#FFFFFF")
# resize
res = sub.add_parser("resize")
res.add_argument("input")
res.add_argument("output")
res.add_argument("--width", type=int, required=True)
res.add_argument("--height", type=int, required=True)
# enhance
enh = sub.add_parser("enhance")
enh.add_argument("input")
enh.add_argument("output")
enh.add_argument("--sharpness", type=float, default=1.0)
enh.add_argument("--contrast", type=float, default=1.0)
enh.add_argument("--brightness", type=float, default=1.0)
# compress
comp = sub.add_parser("compress")
comp.add_argument("input")
comp.add_argument("output")
comp.add_argument("--kb", type=int, required=True)
# batch
b = sub.add_parser("batch-compress")
b.add_argument("input_dir")
b.add_argument("output_dir")
b.add_argument("--kb", type=int, required=True)
args = parser.parse_args()
if args.command == "remove-bg":
remove_background(args.input, args.output)
elif args.command == "add-bg":
add_background(args.input, args.output, args.color)
elif args.command == "resize":
resize_image(args.input, args.output, args.width, args.height)
elif args.command == "enhance":
enhance_image(args.input, args.output,
args.sharpness, args.contrast, args.brightness)
elif args.command == "compress":
compress_image(args.input, args.output, args.kb)
elif args.command == "batch-compress":
batch_compress(args.input_dir, args.output_dir, args.kb)
else:
parser.print_help()