MCPcopy Create free account
hub / github.com/MearaY/StegaPy / build_parser

Function build_parser

cli.py:148–191  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

146# ── 参数定义 ───────────────────────────────────────────────────────────
147
148def build_parser() -> argparse.ArgumentParser:
149 parser = argparse.ArgumentParser(
150 prog='python cli.py',
151 description='StegaPy — 图像隐写与数字水印命令行工具',
152 )
153 sub = parser.add_subparsers(dest='command', required=True)
154
155 # embed
156 p_embed = sub.add_parser('embed', help='将秘密信息嵌入载体图像')
157 p_embed.add_argument('-i', '--input', required=True, metavar='cover.png', help='载体图像路径')
158 p_embed.add_argument('-m', '--message', required=True, metavar='msg.txt', help='待嵌入文件路径')
159 p_embed.add_argument('-o', '--output', required=True, metavar='stego.png', help='输出隐写图像路径')
160 p_embed.add_argument('-p', '--password', default=None, metavar='密码', help='启用 AES 加密时的密码')
161 p_embed.add_argument('--algo', choices=['lsb', 'randlsb'], default='lsb', help='隐写算法(默认 lsb)')
162 p_embed.add_argument('--bits', type=int, default=1, choices=range(1, 9), help='每通道使用位数(默认 1)')
163 p_embed.add_argument('--no-compress', action='store_true', help='禁用 gzip 压缩')
164
165 # extract
166 p_extract = sub.add_parser('extract', help='从隐写图像中提取信息')
167 p_extract.add_argument('-i', '--input', required=True, metavar='stego.png', help='隐写图像路径')
168 p_extract.add_argument('-o', '--output', default=None, metavar='输出目录', help='提取文件保存目录(默认与输入同目录)')
169 p_extract.add_argument('-p', '--password', default=None, metavar='密码', help='解密密码(如嵌入时设置了密码)')
170 p_extract.add_argument('--algo', choices=['lsb', 'randlsb'], default='lsb', help='嵌入时使用的算法(默认 lsb)')
171
172 # wm
173 p_wm = sub.add_parser('wm', help='数字水印操作')
174 wm_sub = p_wm.add_subparsers(dest='wm_command', required=True)
175
176 p_wm_embed = wm_sub.add_parser('embed', help='嵌入数字水印')
177 p_wm_embed.add_argument('-i', '--input', required=True, metavar='cover.png', help='载体图像路径')
178 p_wm_embed.add_argument('-s', '--sig', required=True, metavar='sig.bin', help='水印签名文件路径')
179 p_wm_embed.add_argument('-o', '--output', required=True, metavar='stego.png', help='输出图像路径')
180 p_wm_embed.add_argument('-p', '--password', required=True, metavar='密码', help='水印密码')
181
182 p_wm_verify = wm_sub.add_parser('verify', help='验证数字水印')
183 p_wm_verify.add_argument('-i', '--input', required=True, metavar='stego.png', help='待验证图像路径')
184 p_wm_verify.add_argument('-s', '--sig', required=True, metavar='sig.bin', help='原始签名文件路径')
185 p_wm_verify.add_argument('-p', '--password', required=True, metavar='密码', help='水印密码')
186
187 p_wm_gensig = wm_sub.add_parser('generate-sig', help='生成水印签名')
188 p_wm_gensig.add_argument('-o', '--output', required=True, metavar='sig.bin', help='签名输出路径')
189 p_wm_gensig.add_argument('-p', '--password', required=True, metavar='密码', help='水印密码')
190
191 return parser
192
193
194def main():

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected