- yoshiko2/Movie_Data_Capture: CLI 工具, 开源版本现已不活跃, 新版本已闭源商业化.
- moyy996/AVDC: 上述项目早期的一个 Fork, 使用 PyQt 实现了图形界面, 已停止维护
- @Hermit/MDCx: AVDC 的 Fork, 一度在 anyabc/something 分发源代码及可执行文件.
- 2023-11-3 @anyabc 因未知原因销号删库, 其分发的最后一个版本号为 20231014.
向相关开发者表示敬意.
- 本项目基于 @Hermit/MDCx, 对代码进行了大幅的重构与拆分, 以提高可维护性
- MacOS 版本为自动构建, 不保证可用性
- 尽管重构了大部分代码, 但由于代码耦合度仍然很高, 可维护性很差, 因此仅修复 bug, 不考虑加入新功能
- 当然如果直接 PR 也可以
一般情况请勿自行构建, 至 Release 下载最新版
Windows 7 上需使用 Python 3.8 构建, 代码及依赖均兼容, 可在本地自行构建. 也可使用 GitHub Actions 构建:
- fork 本仓库, 在仓库设置中启用 Actions
- 参考 为存储库创建配置变量, 设置
BUILD_FOR_WINDOWS_LEGACY
变量, 值非空即可 - 在 Actions 中手动运行
Build and Release
低版本 macOS: 需注意 opencv 兼容性问题, 参考 issue #82.
也可使用 GitHub Actions 构建, 步骤同上, 需设置 BUILD_FOR_MACOS_LEGACY
变量, 值非空即可;
以及 MACOS_LEGACY_CV_VERSION
变量, 值为兼容的 opencv-contrib-python-headless
版本
ARM64(AArch64) 架构: 可本地构建. 若欲使用 GitHub Actions 构建, 需 添加自托管的运行器,
并设置 SELF_HOSTED_MACOS_ARM64_RUNNER
变量
- 在
config.ini.default
中添加配置项及其默认值, 值类型可以是字符串, 整数, 浮点数 - 如果此值非字符串, 在
src/models/config/config_manual.py
中将配置键加入INT_KEY
或FLOAT_KEY
中 - 修改
src/models/config/config_generator.py
中的CONFIG_STR
, 这用于生成默认配置文件 - 修改
src.models.config.config.MDCxConfig.save_config
方法, 将新配置项加入模板字符串中, 这用于保存配置文件 - 运行
src/models/config/config_generator.py
, 这将更新src/models/config/config_generated.py
- 现在可以通过
from models.config.config import config
导入配置, 并通过config.<key>
获取对应值, 且支持 IDE 补全 - 按下一节所述在设置界面中添加对应的控件
- 修改
src/controllers/main_window/
目录下load_config.py
及save_config.py
, 以实现与图形界面的交互
src/views/MDCx.ui
定义了主窗口,src/views/posterCutTool.ui
是图片裁剪窗口, 可使用 Qt Designer 或 Qt Creator 编辑- 修改后运行
pyuic5 src\views\MDCx.ui -o src\views\MDCx.py
生成对应的 Python 代码 - 如需设置控件事件等, 需修改
src.controllers.main_window.init.Init_Singal
- 所有事件处理函数均在
src/controllers/main_window/main_window.py
src/models
中包括全部业务逻辑, 其中:config
目录包括配置管理相关的代码base
目录包括基本的功能函数, 它们耦合度较低core
包括核心功能实现, 其中scraper.py
包括刮削过程的实现signals.py
包括 Qt 信号量, 这是 MC 解耦的关键, 它也负责日志打印config
和signal
是预定义的单例, 可以在任何位置导入使用views
和controllers
结构相对简单, 可参考上文说明