Download specific MTG card image from Scryfall
And convert it to a one-to-one size to meet the main image requirements of the damn Taobao.
- 🚀 并发下载: 支持多线程并发下载,大幅提升下载速度
- 🛡️ 错误处理: 完善的错误处理和重试机制
- 📝 详细日志: 完整的日志记录,便于调试和监控
- ⚙️ 配置管理: 集中的配置文件,易于调整参数
- 🖼️ 图片优化: 使用Pillow替代ImageMagick,更好的图片处理
- 📊 进度显示: 实时显示下载进度条
- 🔧 模块化设计: 清晰的代码结构,易于维护和扩展
- ✅ 完全兼容: 图片处理逻辑与原版ImageMagick完全一致
# 安装Python依赖
pip install -r requirements.txt
# 或者使用Makefile
make install# 使用默认配置运行
make run
# 或者直接运行
python3 src/main.py# 指定卡牌列表文件
python3 src/main.py --card-list my_cards.txt
# 设置并发数量
python3 src/main.py --concurrent 10
# 详细日志输出
python3 src/main.py --verbose
# 查看帮助
python3 src/main.py --help# 运行原版程序
make run-original在 MTGCardList 文件中填写需要下载的万智牌卡图信息:
| 系列代号 | 卡牌编号 | 文字 |
|---|---|---|
| 2x2 | 361 | z |
| lci | 55 | j |
说明:
- 第一列:系列代号(如
2x2,lci,cmm等) - 第二列:卡牌编号(数字)
- 第三列:语言代码
z: 简体中文j: 日文d: 德文f: 法文- 空值或其他:英文
可以通过修改 src/config.py 文件来调整各种参数:
- 图片尺寸和质量
- 下载超时和重试设置
- 并发下载数量
- 文件路径等
MTGImgDownloader/
├── src/
│ ├── main.py # 主程序入口
│ ├── config.py # 配置文件
│ ├── card_downloader.py # 卡牌下载器
│ ├── utils.py # 工具函数
│ └── getMTGPic.py # 原版程序(兼容性)
├── imgs/ # 下载的图片目录
├── requirements.txt # Python依赖
├── Makefile # 构建脚本
├── MTGCardList # 卡牌列表
├── README.md # 说明文档
├── IMAGE_PROCESSING_ANALYSIS.md # 图片处理逻辑分析
└── test_image_processing.py # 图片处理测试脚本
# 测试图片处理逻辑
python3 test_image_processing.py# 运行原版程序
make run-original
# 运行优化版本
make run程序运行时会生成 mtg_downloader.log 日志文件,记录详细的运行信息。
- 依赖问题: 确保已安装所有依赖
pip install -r requirements.txt - 网络问题: 检查网络连接和防火墙设置
- 权限问题: 确保有写入
imgs/目录的权限 - 配置问题: 检查
src/config.py中的配置是否正确 - 图片尺寸问题: 如果图片尺寸不一致,请运行测试脚本验证
原版程序仍然保留在 src/getMTGPic.py,可以通过 make run-original 运行。
- Python 3.10+
- 网络连接
- 足够的磁盘空间存储图片
详见 LICENSE 文件。