English README | 中文
专为"一大批照片、每张要裁的位置都不一样"而生的批量裁剪 / 矫正工具。
你有一整个文件夹的翻拍照片——证书、奖状、证件、白板、幻灯片、票据、试卷……每张的角度和位置都不同,还要按指定区域把内容抠正、摆平。用普通工具做这件事,要么慢,要么根本做不了。crop_tool 就是来解决这个痛点的:逐张精准框选,人主导、机器帮贴准,键盘驱动一路到底,上百张也不卡。
逐张框选:点四角定位裁剪区域,磁吸自动贴准边角
透视矫正后的成品效果与处理界面总览
真实场景:需要把大量位置各不相同的翻拍照片,按人工指定的区域逐张裁剪、摆正、归档。市面工具在这件事上都不称手:
| 工具类型 | 典型代表 | 局限 |
|---|---|---|
| 扫描类 App | CamScanner / Microsoft Lens / Adobe Scan | 追求全自动,对“人工指定区域且每张位置都不同”的场景经常答非所问,批量处理困难 |
| 通用修图 / 批量裁剪 | 美图秀秀、WPS 图片处理 | 只能做统一裁剪或逐张手动拖框,几百张下来极其耗时 |
| 批量裁剪软件(一个框套整个文件夹) | 各类脚本/工具 | 只适合固定机位;每张位置不同就完全用不了 |
crop_tool 的取舍很明确:不追求全自动(全自动对"人工指定区域"这件事天然不靠谱),而是把逐张手动定位的效率做到极致——你依然是决策者,工具负责让每一次落点又快又准,让整个流程零摩擦。
- 📜 证书 / 奖状 / 证件翻拍整理:每张角度位置都不同,需逐张抠正
- 🖼️ 会议 / 活动照片、白板 / 投影幻灯片翻拍归档
- 📄 文档 / 试卷 / 票据翻拍去背景、摆平、统一成册
- 📊 任何"一批照片,每张都要单独框选指定区域"的整理工作
- 逐张精准框选,而非一框套全部 —— 每张都能按自己的内容单独定位,这是批量工具做不到的。
- 半自动辅助,降低手动难度(都可开关,只当"起点"不替你做主):
- 自动吸边(磁吸):落点自动吸附到附近真实边角,点不准也贴得准。
- 自动框选(D 键):一键识别边框摆好四角,再拖拽微调。
- 沿用上张选区:同机位连拍时,新图自动带入上一张选区作起点。
- 批量套用(A 键):标好一张,一键套用到本文件夹其余同机位图片。
- 键盘驱动的零摩擦流程:
Enter保存后自动跳到下一张未处理;中途关掉再打开,自动恢复进度(已处理的自动打勾)。 - 真实比例透视矫正:按你所选四边形的真实边长输出,保留原始比例、不强行拉伸。
- 上百张依然流畅:按需加载 + 后台缩略图,翻页、保存、跳转顺滑不卡。
- 一站式:裁剪 + 水平矫正 + 导出 PPT / PDF / Word,一个工具搞定。
- 免安装:Windows 用户下载解压即用,无需 Python 环境。
普通用户无需安装 Python,直接下载即可使用:
- 前往 Releases 页面
- 下载最新的压缩包(当前为
crop_tool-v2.6.zip) - 解压到任意目录
- 双击
crop_tool.exe运行 - 点击「选择图片文件夹」,选中待处理的图片文件夹即可开始
- 「选择图片文件夹」载入图片(左侧缩略图列表)
- 点击左侧缩略图选择要处理的图片
- 选择模式:裁剪 [1](四点透视)或 矫正 [2](两点摆平)
- 按顶部提示条在画布上点标记点(裁剪:左上→右上→右下→左下)
- 按
Enter保存,自动跳到下一张未处理;结果实时出现在右侧「已处理结果」 - 全部处理完,可一键导出 PPT / PDF / Word
处理结果保存在所选文件夹下的 crop_tool_已处理/ 子目录中,保持原有子文件夹结构;文件在按 Enter 时即写入磁盘。退出时可选择「保存并退出」或「不保存并退出(删除本次生成的成品)」。
| 开关 | 默认 | 作用 |
|---|---|---|
| 自动吸边 | 开 | 裁剪落点自动吸附到附近真实边角 |
| 沿用上张选区 | 关 | 切到下一张时自动带入上一张选区作起点 |
| 键 | 功能 | 键 | 功能 |
|---|---|---|---|
Enter |
保存并跳到下一张未处理 | S |
跳过当前 |
B |
上一张 | N |
跳过整个文件夹 |
R |
重画(清除标记点) | A |
批量套用到本文件夹剩余 |
P |
粘贴上次标记点 | D |
自动框选(识别边框) |
1 / 2 |
裁剪 / 矫正模式 | Ctrl+Z / Ctrl+Y |
撤销 / 重做 |
| 方向键 | 微调选中点(Shift 为 10px) |
滚轮 / + / - / 0 |
缩放 / 复位 |
| 空格 + 拖拽 或 中键拖拽 | 平移画布 | Esc / Q |
返回原图 / 退出 |
git clone https://github.com/Naraku215/crop_tool.git
cd crop_tool
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # Linux/macOS
pip install -r requirements.txt
python gui.py # 启动 GUI(推荐)命令行辅助工具(格式转换 / 文件夹对账 / 导出):
python main.pycrop_tool/
├── gui.py # GUI 界面入口(主入口,推荐)
├── main.py # 命令行入口(格式转换 / 对账 / 导出)
├── crop_tool.py # 四点透视裁剪 + 磁吸 + 自动框选算法
├── level.py # 两点水平矫正算法
├── export.py # 统一导出模块(PPT / PDF / Word)
├── trans_png.py # 格式转换(任意格式 -> PNG)
├── check_folders.py # 文件夹对账检查
├── utils.py # 共享工具(扫描、排序、读写图片)
├── config.py # 集中配置(尺寸、格式等参数)
├── build.bat # PyInstaller 打包脚本
├── requirements.txt # Python 依赖
├── LICENSE # MIT 开源协议
└── README.md
点击 4 个角点(左上→右上→右下→左下)做透视矫正。默认按所选区域真实边长输出,保留原始比例、不拉伸。内置 snap_corner(磁性吸边)与 detect_quad(自动识别四边形作起点)。
在图上点一条应为水平的线(左端→右端),自动计算倾斜角并旋转摆平、去黑边,实时预览。
| 格式 | 说明 |
|---|---|
| PPT | 16:9 宽屏,每张图按自身比例居中等比放置(不拉伸、不裁切),每个子文件夹一个 .pptx |
Pillow 原生生成,每个子文件夹一个 .pdf |
|
| Word | 横向页面,每张图一页,每个子文件夹一个 .docx |
独立运行:
python export.py <input_dir> <output_dir> [ppt|pdf|word|all]| 参数 | 说明 | 默认值 |
|---|---|---|
TARGET_SIZE |
裁剪固定目标尺寸(仅显式指定时使用;GUI 默认按真实比例) | (1920, 1080) |
SLIDE_WIDTH_INCH / SLIDE_HEIGHT_INCH |
PPT 幻灯片尺寸(16:9) | 13.333 / 7.5 |
THUMBNAIL_SIZE |
缩略图尺寸 | (120, 90) |
IMAGE_EXTS |
支持的图片格式 | .png .jpg .jpeg .bmp .tiff .tif .heic .heif |
build.bat打包后在 dist/ 生成:
crop_tool/—— 可执行程序文件夹(crop_tool.exe)crop_tool-v2.6.zip—— 可上传到 GitHub Releases 的压缩包
OpenCV(透视 / 角点 / 边缘检测)· Pillow + pillow-heif(读图 / HEIC / PDF)· python-pptx · python-docx · NumPy · tkinter(GUI)

