前言¶
在 DeepSeek Harness(dsh)里让模型读截图时,常见路径是整图送入视觉能力。大图往往会在入模前被缩小,游戏里 10–11px 的物品名、状态栏数字在缩小后笔画会糊在一起,模型反复读同一张图也换不回已经丢失的像素细节。crop-zoom 走另一条路:在模型阅读之前,本地裁剪指定区域并按整数倍放大,再把新图交给 read_image,用几何预处理换可读性,而不是依赖 OCR 或二次整图推理。
这是什么¶
dsh-crop-zoom(GitHub:07210905/crop-zoom)是社区维护的 dsh 插件,同时提供同名独立 CLI。它在 Harness 中注册 crop_zoom 工具;处理全程在本地完成,不联网、不调用模型、也不内置 OCR。依赖只有 sharp(libvips),且懒加载,避免原生模块缺失时拖垮 Harness 启动。运行环境要求 Node ≥ 22,许可证 MIT。插件在 SkillHub 目录中归类为「模型推理」。
核心功能¶
下面介绍插件实际提供的能力,均来自官方 README。
crop_zoom 工具:对本地图片按源图像素坐标裁剪 1–8 个矩形区域,用所选插值核做整数倍放大(单次最高 16×),输出 PNG 并返回路径;模型侧应再用 read_image 读结果。工具返回的文本只描述几何与写出路径,刻意不作为「答案」。
自动倍率:可省略 scale,由 target(默认 1600)推算放大倍数,使区域长边达到目标像素,且不超过 16×。
多区域拼 sheet:默认把多个区域自上而下叠成一张带标注的 PNG,一次跟进阅读即可;也可关闭 sheet,每个区域单独文件。
插值模式:bicubic(默认,保字形轮廓)、nearest(整像素复制,利于区分等宽字形如 0 与 D)、lanczos、mitchell。README 建议两种模式互补查看仍含糊的字形。
预览坐标校正:若坐标是在缩小预览上量的,可传 previewWidth,自动映射回源图尺寸。
CLI:与插件共用同一套引擎,适合脚本或调试。
安装与启用¶
作为 dsh 插件安装时,使用资料中的命令(不要用 github:owner/repo 自行拼接):
dsh plugin --profile <profile> add dsh-crop-zoom # from a registry
dsh plugin --profile <profile> add ./dsh-crop-zoom # from a local checkout
安装后重启应用;crop_zoom 会随请求提供给模型。
独立 CLI:
npm install -g dsh-crop-zoom
crop-zoom -i shot.png -r 1178,588,64,24 -s 16 -o label.png
插件以当前 dsh 进程权限访问本地文件。安装前请自行查看仓库源码与 MIT 许可证,确认符合你的环境策略。
典型用法¶
单区域、自动放大到长边约 1600px:
{ "path": "C:\\shots\\raid.png", "regions": [{ "x": 1178, "y": 588, "width": 64, "height": 24 }] }
两个区域拼成一张 sheet,提高目标长边:
{ "path": "C:\\shots\\raid.png",
"regions": [{ "x": 80, "y": 430, "width": 540, "height": 300, "label": "rank board" },
{ "x": 875, "y": 155, "width": 450, "height": 660, "label": "gear" }],
"target": 2400 }
固定 16× 且用 nearest 分离易混字形:
{ "path": "C:\\shots\\raid.png", "regions": [{ "x": 1444, "y": 373, "width": 96, "height": 42 }],
"scale": 16, "mode": "nearest" }
工具写出文件后,典型返回会说明内核、各区域源坐标与放大倍数,并提示用 read_image 读 sheet 路径,不要仅凭几何摘要作答。
主要参数¶
| 名称 | 类型 | 默认 | 含义 |
|---|---|---|---|
path |
string | — | 源图绝对路径,必填 |
regions |
array | — | 1–8 个区域,sheet 顺序;每项 {x, y, width, height, label?},单位为源图像素 |
scale |
integer | — | 整数倍率 1–16;省略时由 target 推算 |
target |
integer | 1600 |
无 scale 时长边目标像素,倍率上限 16× |
mode |
enum | bicubic |
bicubic | nearest | lanczos | mitchell |
sheet |
boolean | true |
是否叠成一张标注 PNG |
outPath |
string | 临时目录 | 输出路径,须以 .png 结尾 |
previewWidth |
integer | — | 预览图宽度,用于坐标换算 |
CLI 支持 -i、重复 -r、-s、-t、-m、-o、--preview-width、--no-sheet、--json 等,与上表语义一致。
工作原理与限制¶
经过上面的步骤,引擎大致做三件事:按 EXIF 旋转后的显示尺寸解码源图一次;对每个区域 extract 再按整数因子 resize,减少重采样对细笔画的干扰;可选合成带几何说明的 sheet。
需要注意的限制:
- 仅本地文件,
path不支持远程 URL。 - 输出恒为 PNG;单次最多 8 个区域、单区域最多 16×。
- Sheet 标注为 ASCII;非拉丁说明宜放在 region 的
label字段,而非指望画在图上(依赖 fontconfig / librsvg)。
结尾¶
若你的智能体经常因截图降采样而误读小字,crop-zoom 把「先裁再放大、再读图」固定成 Harness 工具,成本通常低于反复整图推理。社区目录页:crop-zoom on SkillHub;源码与完整说明:07210905/crop-zoom。