-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathMirageTankGo.py
72 lines (59 loc) · 2.46 KB
/
MirageTankGo.py
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""幻影坦克快速发车工具
Usage:
MirageTankGo.py --gui
MirageTankGo.py -h
MirageTankGo.py -o OUTPUT BLACKIMG WHITEIMG [-e] [--scale=SCALE] [--light=LIGHT] [--color=COLOR]
MirageTankGo.py -v
Arguments:
OUTPUT 输出文件, PNG格式
BLACKIMG 黑底下显示的图片
WHITEIMG 白底下显示的图片
SCALE 图片缩放比例, 格式 白底比例-黑底比例
LIGHT 图片的亮度, 格式 白底亮度-黑底亮度
COLOR 色彩保留比例, 格式 白底色彩-黑底色彩
Options:
--gui 以GUI模式启动(需要tkinter支持, Win下自带)
-h, --help 显示本帮助
-o 输出文件(png格式)
-e 使用棋盘格
-s 缩放比例
-l 黑底和白底的亮度, 取值0~1.
-c 彩色车的黑底白底色彩保留比例, 取值0~1
-v, --version 显示版本号
Examples:
python MirageTankGo.py -o remu.png black.jpg white.jpg --scale=1-1 --light=1-0.18 --color=0.5-0.7
"""
from docopt import docopt
from PIL import Image
from MTCore import MTCore
if __name__ == '__main__':
argv = docopt(__doc__, version='1.4')
# print(argv)
kwargs = {}
if argv['--gui']:
from GUI import MainWindow
MainWindow.vp_start_gui()
else:
whiteImg = Image.open(argv['WHITEIMG'])
blackImg = Image.open(argv['BLACKIMG'])
if argv['--scale']:
whiteScale, blackScale = argv['--scale'].split('-')
whiteImg = whiteImg.resize((round(x * float(whiteScale))
for x in whiteImg.size), Image.ANTIALIAS)
blackImg = blackImg.resize((round(x * float(blackScale))
for x in blackImg.size), Image.ANTIALIAS)
if argv['--light']:
light = argv['--light'].split('-')
kwargs['whiteLight'] = float(light[0])
kwargs['blackLight'] = float(light[1])
if argv['-e']:
kwargs['chess'] = True
if argv['--color']:
color = argv['--color'].split('-')
kwargs['whiteColor'] = float(color[0])
kwargs['blackColor'] = float(color[1])
MTCore.color_car(whiteImg, blackImg, **kwargs).save(argv['OUTPUT'], 'PNG')
else:
MTCore.gray_car(whiteImg, blackImg, **kwargs).save(argv['OUTPUT'], 'PNG')