🎨 一个优雅的 Markdown 图片上传工具 | Made with ❤️ by Sherry
- 🖼️ 自动将 Markdown 中的本地图片上传至图床
- 🌐 支持多个主流图床服务
- 🔄 支持批量处理整个文件夹
- 🎯 支持拖拽上传文件
- 🌈 多线程并行上传,效率更高
- 🎨 优雅的日志显示界面
- 🔌 支持 WordPress 图片链接转换和还原
- 🔄 上传失败自动重试
- 📝 保持原有 Markdown 格式
- ⚙️ 灵活的配置管理系统
- PicGo - 通过 PicGo 服务上传
- 腾讯云COS - 腾讯云对象存储
- 阿里云OSS - 阿里云对象存储
- SM.MS - 免费图床服务
- GitHub - 使用 GitHub 仓库作为图床
- 七牛云 - 七牛云存储
- 又拍云 - 又拍云存储
- Imgur - 国际知名图床
程序支持两种 WordPress 链接操作:
- 转换为 WordPress 链接 - 将图片链接转换为
//images.weserv.nl/?url=格式,通过 CDN 加速访问 - 去除 WordPress 前缀 - 将 WordPress 格式的链接还原为原始链接
pip install -r requirements.txtpython main.py点击程序中的"配置"按钮,可以设置以下选项:
- 服务器地址: PicGo 服务器地址(默认:http://127.0.0.1:36677)
- Secret ID: 腾讯云 API 密钥 ID
- Secret Key: 腾讯云 API 密钥
- Bucket: 存储桶名称
- Region: 地域(如:ap-guangzhou)
- Access Key ID: 阿里云访问密钥 ID
- Access Key Secret: 阿里云访问密钥
- Bucket: 存储桶名称
- Endpoint: 访问域名(如:oss-cn-hangzhou.aliyuncs.com)
- API Token: SM.MS API 令牌(可选)
- Token: GitHub Personal Access Token
- Repository: 仓库名称(格式:username/repo)
- Branch: 分支名称(默认:main)
- Path: 存储路径(默认:images)
- Access Key: 七牛云访问密钥
- Secret Key: 七牛云密钥
- Bucket: 存储空间名称
- Domain: 绑定的域名
- Operator: 操作员名称
- Password: 操作员密码
- Bucket: 存储空间名称
- Domain: 绑定的域名
- Client ID: Imgur 应用客户端 ID
- 转换为 WordPress 图片链接: 启用后,所有图片链接将转换为 WordPress CDN 格式
- 去除 WordPress 链接前缀: 启用后,将还原 WordPress 格式的链接为原始链接
- 图片路径前缀: 用于处理相对路径的图片,设置图片文件的基础路径
- 打开程序,点击"配置"按钮选择图床类型并填写配置信息
- 拖拽 Markdown 文件或文件夹到程序窗口,或点击"选择文件"/"选择目录"按钮
- 程序会自动上传本地图片并替换链接
- 根据配置,自动处理 WordPress 链接转换
- 查看日志了解处理进度和结果
- Python 3.6+
- PyQt5 >= 5.15.0
- requests >= 2.25.0
- cos-python-sdk-v5 >= 1.9.0 (腾讯云COS)
- oss2 >= 2.15.0 (阿里云OSS)
- qiniu >= 7.4.0 (七牛云)
- 支持的图片格式:png, jpg, jpeg, gif, bmp(大小写不敏感)
- 使用 PicGo 图床时,需要 PicGo 在后台运行(默认端口:36677)
- 建议在处理前备份重要文件
- 支持批量处理整个 Obsidian 仓库
- 自动识别并处理所有本地图片链接
- 配置信息保存在
config.json文件中 - 支持绝对路径和相对路径的图片
- 配置文件中包含敏感信息(如 API 密钥),请妥善保管
- 不要将
config.json文件提交到公共代码仓库 - 建议定期更换 API 密钥
欢迎提交 Issue 和 Pull Request!
MIT License © 2025 Sherry
🎨 Sherry's Notes: 希望这个小工具能让你的写作流程更加顺畅!如果觉得有帮助,欢迎给个 Star ⭐️
# Windows
build.bat
# 或使用Python脚本
python build.pypip install pyinstaller
pyinstaller --name=md2picgo --onefile --windowed --icon=icon/hello kitty.ico --add-data=icon;icon main.py# 打包并发布
build_and_release.bat
# 或分步执行
python build.py
python release.py- 打包程序
- 提交代码到GitHub
- 在GitHub创建Release
- 上传exe文件
详见 RELEASE.md
md2picgo/
├── main.py # 程序入口
├── ui.py # 用户界面
├── uploader.py # 上传逻辑
├── config_manager.py # 配置管理
├── wordpress_processor.py # WordPress处理
├── image_hosts/ # 图床适配器
│ ├── base.py # 基类
│ ├── factory.py # 工厂类
│ ├── gitee.py # Gitee
│ ├── tencent_cos.py # 腾讯云COS
│ ├── aliyun_oss.py # 阿里云OSS
│ ├── smms.py # SM.MS
│ ├── github.py # GitHub
│ ├── qiniu.py # 七牛云
│ ├── upyun.py # 又拍云
│ └── imgur.py # Imgur
├── icon/ # 图标文件
├── config.json.example # 配置示例
├── build.py # 打包脚本
├── release.py # 发布脚本
└── README.md # 说明文档