image-split — 图片分割线
用确定性脚本(Pillow)在图片上画白色分割线,把一张图视觉上分成固定网格。核心原则:只画线、不裁剪、不丢内容、不覆盖原文件。
与「裁剪成多张」无关:本技能不改图片尺寸、不拆成多个文件,只在原图上叠加白色网格线。
工作流程
- 判断网格:用户说「九宫格」等直接对应下表 preset;没说清就用 AskUserQuestion 列出 5 个固定选项让用户点选。
- 调用
scripts/split.py --preset <预设>(环境准备见下)。 - 核对末尾 JSON(网格、线宽、输出尺寸)。
- present_files 展示,汇报:原图尺寸 → 网格 → 竖线/横线条数 → 线宽(mm/px)→ 输出文件。
固定网格(点选)
| 网格 | --preset | 竖线 | 横线 | 效果 |
|---|---|---|---|---|
| 九宫格 | nine | 2 | 2 | 3×3 |
| 四宫格 | four | 1 | 1 | 2×2 |
| 六宫格 | six | 2 | 1 | 3×2 |
| 竖切三段(长图 / 三联屏) | three_v | 0 | 2 | 1×3 |
| 横切三段 | three_h | 2 | 0 | 3×1 |
必须遵守
- 只画线,不裁剪:输出与原图同尺寸的单张图,网格线叠加在原内容之上。
- 线宽 = 1 毫米:默认白线 1mm,按固定 96 DPI 换算为像素(约 4px);
--dpi可覆盖(打印用 300),--line-mm可调、--color可改色。 - 永不覆盖:输出
原名_split.<原格式>新文件,路径永不等于输入。 - 透明/EXIF/动图:PNG 保留 alpha;EXIF 自动摆正;GIF 只取首帧并在回复说明。
环境准备(跨平台)
脚本只依赖 Pillow。按顺序确定 $PY:
python3 -c "import PIL"成功 → 用python3- Windows:
python -c "import PIL"或py -3 -c "import PIL" - 都不行 → 技能目录建
.venv(macOS/Linux:python3 -m venv .venv && .venv/bin/python -m pip install Pillow;Windows:python -m venv .venv && .venv\Scripts\python -m pip install Pillow)
脚本用法
$PY <本技能目录>/scripts/split.py INPUT --preset nine|four|six|three_v|three_h \
[--line-mm 1.0] [--dpi 96] [--color '#FFFFFF'] [--output out.png]
- 输出缺省
原名_split.<原格式>(保留原格式) - 末尾 JSON 含 {input, output, preset, grid, size, line_mm, line_px, dpi, color}
示例:
$PY .../scripts/split.py photo.jpg --preset nine
# photo.jpg: 3024x3024 -> 2 vertical + 2 horizontal lines (4px) -> photo_split.jpg
# [{"input":"photo.jpg","preset":"nine","grid":[3,3],"size":[3024,3024],"line_mm":1.0,"line_px":4,...}]
完成后的动作
- present_files 展示画好线的图
- 汇报:原图尺寸 → 网格 → 竖线/横线条数 → 线宽 → 输出文件
微信扫一扫