-
Notifications
You must be signed in to change notification settings - Fork 50
/
Copy pathrun_zh.bat
131 lines (113 loc) · 4.28 KB
/
run_zh.bat
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
@echo off
set CLI_LANGUAGE=zh
setlocal enabledelayedexpansion
REM 获取当前批处理文件的目录
set SCRIPT_DIR=%~dp0
REM 设置Python解释器路径和项目目录
set PYTHON_EXE=%SCRIPT_DIR%python-embed\python.exe
set SCRIPT_PATH=%SCRIPT_DIR%src\main.py
REM 检查是否有文件或目录被拖放
if "%~1"=="" (
echo 请将图像文件或目录拖放到此脚本上
pause
exit /b
)
REM 获取拖放的路径
set INPUT_PATH=%~1
echo LiYing
echo Github: https://github.com/aoguai/LiYing
echo 许可证: AGPL-3.0
echo ----------------------------------------
REM 提示用户输入参数
set /p "layout_only=是否仅进行布局而不更改背景(是/否,默认为否): "
if /i "!layout_only!"=="是" (
set layout_only=--layout-only
set change_background=--no-change-background
set save_background=--no-save-background
set rgb_list=255,255,255
) else (
set layout_only=
set /p "change_background=是否更改背景(是/否,默认为否): "
if /i "!change_background!"=="是" (
set change_background=--change-background
set /p "rgb_list=输入RGB通道值(用逗号分隔,默认为255,255,255): "
if "!rgb_list!"=="红" set rgb_list=255,0,0
if "!rgb_list!"=="蓝" set rgb_list=12,92,165
if "!rgb_list!"=="白" set rgb_list=255,255,255
if "!rgb_list!"=="" set rgb_list=255,255,255
set /p "save_background=是否保存更改背景后的图像(是/否,默认为否): "
if /i "!save_background!"=="是" (
set save_background=--save-background
) else (
set save_background=--no-save-background
)
) else (
set change_background=--no-change-background
set save_background=--no-save-background
set rgb_list=255,255,255
)
)
set /p "resize=是否调整图像大小(是/否,默认为是): "
if /i "!resize!"=="否" (
set resize=--no-resize
set save_resized=--no-save-resized
) else (
set resize=--resize
set /p "save_resized=是否保存调整大小后的图像(是/否,默认为否): "
if /i "!save_resized!"=="是" (
set save_resized=--save-resized
) else (
set save_resized=--no-save-resized
)
set /p "photo_type=输入照片类型(默认为一寸): "
if "!photo_type!"=="" set photo_type=一寸
)
set /p "photo_sheet_size=输入照片表格大小(默认为五寸): "
if "!photo_sheet_size!"=="" set photo_sheet_size=五寸
set /p "compress=是否压缩图像(是/否,默认为否): "
if /i "!compress!"=="是" (
set compress=--compress
) else (
set compress=--no-compress
)
set /p "save_corrected=是否保存校正后的图像(是/否,默认为否): "
if /i "!save_corrected!"=="是" (
set save_corrected=--save-corrected
) else (
set save_corrected=--no-save-corrected
)
set /p "sheet_rows=输入照片表格的行数(默认为3): "
if "!sheet_rows!"=="" set sheet_rows=3
set /p "sheet_cols=输入照片表格的列数(默认为3): "
if "!sheet_cols!"=="" set sheet_cols=3
set /p "rotate=是否将照片旋转90度(是/否,默认为否): "
if /i "!rotate!"=="是" (
set rotate=--rotate
) else (
set rotate=--no-rotate
)
set /p "add_crop_lines=在相纸上添加裁剪线(是/否,默认为是): "
if /i "!add_crop_lines!"=="否" (
set add_crop_lines=--no-add-crop-lines
) else (
set add_crop_lines=--add-crop-lines
)
REM 检查拖放的项目是文件还是目录
if exist "%INPUT_PATH%\" (
REM 如果是目录,遍历其中所有的jpg和png文件
for %%f in ("%INPUT_PATH%\*.jpg" "%INPUT_PATH%\*.png") do (
REM 提取文件夹路径和文件名
set "INPUT_FILE=%%~ff"
set "OUTPUT_PATH=%%~dpnf_output%%~xf"
REM 执行Python脚本处理图像
start "" cmd /k "%PYTHON_EXE% %SCRIPT_PATH% "%%~ff" -b !rgb_list! -s "%%~dpnf_output%%~xf" -p !photo_type! --photo-sheet-size !photo_sheet_size! !compress! !save_corrected! !change_background! !save_background! -sr !sheet_rows! -sc !sheet_cols! !rotate! !resize! !save_resized! !layout_only! !add_crop_lines! & pause"
)
) else (
REM 如果是文件,直接处理该文件
set INPUT_DIR=%~dp1
set INPUT_FILE=%~nx1
set OUTPUT_PATH=%INPUT_DIR%%~n1_output%~x1
REM 由于使用了setlocal enabledelayedexpansion,使用!variable_name!来引用变量
start "" cmd /k "%PYTHON_EXE% %SCRIPT_PATH% "!INPUT_PATH!" -b !rgb_list! -s "!OUTPUT_PATH!" -p !photo_type! --photo-sheet-size !photo_sheet_size! !compress! !save_corrected! !change_background! !save_background! -sr !sheet_rows! -sc !sheet_cols! !rotate! !resize! !save_resized! !layout_only! !add_crop_lines! & pause"
)
pause