返回 Skill 列表
extension
分类: 开发与工程无需 API Key

图片分割

图片分割线(split)技能。在图片上绘制白色分割线,把一张图视觉上分成固定网格:九宫格(3×3)、四宫格(2×2)、六宫格(3×2)、竖切三段(1×3)、横切三段(3×1)。当用户说「加九宫格线」「画分割线」「朋友圈九宫格」「把图分成 3 段(画线)」时触发。只画线、不裁剪,输出仍是单张完整图片;线宽默认 1 毫米(白色)。

person作者: neuhanlihubModelScope

image-split — 图片分割线

用确定性脚本(Pillow)在图片上画白色分割线,把一张图视觉上分成固定网格。核心原则:只画线、不裁剪、不丢内容、不覆盖原文件

与「裁剪成多张」无关:本技能不改图片尺寸、不拆成多个文件,只在原图上叠加白色网格线。

工作流程

  1. 判断网格:用户说「九宫格」等直接对应下表 preset;没说清就用 AskUserQuestion 列出 5 个固定选项让用户点选。
  2. 调用 scripts/split.py --preset <预设>(环境准备见下)。
  3. 核对末尾 JSON(网格、线宽、输出尺寸)。
  4. 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

  1. python3 -c "import PIL" 成功 → 用 python3
  2. Windows:python -c "import PIL"py -3 -c "import PIL"
  3. 都不行 → 技能目录建 .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 展示画好线的图
  • 汇报:原图尺寸 → 网格 → 竖线/横线条数 → 线宽 → 输出文件