裁出截图小字区域并放大,让模型看清内容
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/15 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 07210905/crop-zoom该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · vision
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 20 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 5 处,展示前 5 条)
- 读取本地文件lib/crop.js:140
if (!existsSync(source)) fail(`no such file: ${source}`) - 读取本地文件lib/crop.js:230
input = await readFile(request.source) - 写入本地文件lib/crop.js:300
await mkdir(outDir, { recursive: true }) - 写入本地文件lib/crop.js:335
await writeFile(sheetPath, sheet) - 写入本地文件lib/crop.js:346
await writeFile(target, piece.buffer)
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
把截图里的小字放大到模型能看清:裁剪区域、用指定核放大、返回新图。DeepSeek Harness(dsh)插件 + 独立命令行。
README
由 DeepSeek 最新模型翻译生成dsh-crop-zoom
把图上的小字裁出来放大,让模型真的能认。
DeepSeek Harness(dsh)插件,注册一个 crop_zoom 工具;同一套引擎也提供独立命令行。
English →
- 纯本地图像处理 —— 不联网、不调用模型、不含 OCR 引擎。
- 只有一个依赖 sharp(libvips),并且延迟加载:原生模块坏了也只会让一次工具调用失败,不会让整个 harness 起不来。
- Node ≥ 22,MIT。
它解决什么问题
一张 1920×1080 的截图不是以 1920×1080 送到模型面前的。中途会被降采样,于是 10–11px 的道具名笔画已经粘在一起 —— 再看一遍原图也没用,那些像素已经没了。
同一个结算界面上的四处读数,全都以同样的方式读错:
| 实际印的 | 读出来的 | 为什么 |
| 03重型盔 | D3重型盔 | 11px 时 0 和 D 共用一条左竖 |
| BT6重型 | B16重型 | T 和前一个 B 粘成一个字 |
| 1000戰地包 | 100D戰地包 | 四位数字并成三位加一个字母 |
| 鎏影權鋒 | 盜影權杖 | 鎏 下面的「金」塌成了「皿」的样子 |
把这些区域先裁出来放大再看,字就清清楚楚。顺序不能颠倒,而且比把整张截图再送一遍便宜得多。
展开完整文档(README 剩余 1 节)
dsh-crop-zoom
把图上的小字裁出来放大,让模型真的能认。
DeepSeek Harness(dsh)插件,注册一个 crop_zoom 工具;同一套引擎也提供独立命令行。
English →
- 纯本地图像处理 —— 不联网、不调用模型、不含 OCR 引擎。
- 只有一个依赖 sharp(libvips),并且延迟加载:原生模块坏了也只会让一次工具调用失败,不会让整个 harness 起不来。
- Node ≥ 22,MIT。
它解决什么问题
一张 1920×1080 的截图不是以 1920×1080 送到模型面前的。中途会被降采样,于是 10–11px 的道具名笔画已经粘在一起 —— 再看一遍原图也没用,那些像素已经没了。
同一个结算界面上的四处读数,全都以同样的方式读错:
| 实际印的 | 读出来的 | 为什么 |
| 03重型盔 | D3重型盔 | 11px 时 0 和 D 共用一条左竖 |
| BT6重型 | B16重型 | T 和前一个 B 粘成一个字 |
| 1000戰地包 | 100D戰地包 | 四位数字并成三位加一个字母 |
| 鎏影權鋒 | 盜影權杖 | 鎏 下面的「金」塌成了「皿」的样子 |
把这些区域先裁出来放大再看,字就清清楚楚。顺序不能颠倒,而且比把整张截图再送一遍便宜得多。
作为 dsh 插件安装
dsh plugin --profile <profile> add dsh-crop-zoom # 从 registry 装
dsh plugin --profile <profile> add ./dsh-crop-zoom # 从本地目录装
然后重启应用。模型就多了一个 crop_zoom 工具,而且它的 schema 会随每一次请求重新送到模型面前。
作为命令行安装
npm install -g dsh-crop-zoom
crop-zoom -i shot.png -r 1178,588,64,24 -s 16 -o label.png
工具怎么用
// 单个区域,自动放大到长边 1600px { "path": "C:\\shots\\raid.png", "regions": [{ "x": 1178, "y": 588, "width": 64, "height": 24 }] }
// 两个区域拼成一张带标注的图,后续只需读一次 { "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 }
// 还是看不清?nearest 保留像素块,专门用来分辨等宽字形 { "path": "C:\\shots\\raid.png", "regions": [{ "x": 1444, "y": 373, "width": 96, "height": 42 }], "scale": 16, "mode": "nearest" }
工具写出 PNG 并返回路径,接着用 read_image 读它。返回的文本只有几何信息,故意如此 ——免得被当成答案:
1 file written from C:\shots\raid.png (1920x1080), kernel bicubic.
#1 source 1178,588 64x24 x12 -> 768x288
#2 source 1444,373 96x42 x12 -> 1152x504
Sheet (regions stacked top to bottom, in the order above): C:\...\raid-20261014181815.png
Now read that file with read_image. Do not answer from this geometry summary alone.
参数
| 名称 | 类型 | 默认 | 含义 |
| path | string | — | 源图绝对路径。必填。 |
| regions | array | — | 1–8 个区域,按拼图顺序。必填。每项 {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;false 则每个区域各写一个文件。 |
| outPath | string | 临时目录 | 输出位置,必须以 .png 结尾。 |
| previewWidth | integer | — | 坐标是在降采样预览图上量的时填它:填预览图的像素宽度,所有坐标自动换算到原图。 |
bicubic 保留字形轮廓,是合适的默认值。nearest 复制整块像素,能把 0 和 D 分开 ——两者互补,某个字还是定不下来时,两种都看一眼。
命令行
crop-zoom -i <image> -r <x,y,w,h> [-r <x,y,w,h> ...] [options]
-i, --image <path> 源图(PNG / JPEG / WebP / AVIF / TIFF / GIF) -r, --region <x,y,w,h> 要放大的区域,最多重复 8 次 -s, --scale <n> 整数放大倍数,1..16 -t, --target <px> 自动放大目标(默认 1600) -m, --mode <kernel> bicubic(默认)| nearest | lanczos | mitchell -o, --out <file.png> 输出路径;每区域一个文件时作为文件名前缀 --preview-width <px> 坐标来自这个宽度的预览图 --no-sheet 每区域一个文件,不拼图 --json 额外打印原始结果对象 -h, --help 显示帮助
实现
1. 源图一次性解码进内存。区域边界按显示尺寸(EXIF 旋转之后)校验,所以竖拍照片按你看到的方向裁。
2. 逐区域 extract,再按整数倍用选定核 resize —— 整数放大不会在你正要读的笔画上引入重采样痕迹。
3. 需要时把各块合成一张图,每块上方标注几何信息,这样多区域核对只要再读一次。
限制
- 只处理本地文件。 不会去抓远程 URL,避免这个工具变成替模型发外部请求的通道。
- 输出固定为 PNG。
- 每次最多 8 个区域、16× 放大。
- 拼图上的标注是 ASCII;非拉丁标注能不能画出来取决于 fontconfig 给 librsvg 暴露了哪些字体,所以中文描述请写在区域 label 里,别指望它出现在图上。
开发
npm install
npm test # 核心几何测试 + 插件契约测试
test/run.mjs 自己合成测试图,断言精确的输出尺寸。
test/plugin.mjs 用桩 ctx 跑 apply(),并验证注册表抛错也不会逸出。
许可
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
07210905/crop-zoom
裁出截图小字区域并放大,让模型看清内容
相关插件 · 视觉能力
智能体工作台Devin-AXIS/iPolloWork
企业级、本地优先的智能体工作台,面向个人和智能体团队——一个工作区,容纳多个智能体引擎;一套统一体系,管理插件和技能;支…
★ 7,364已汉化DSH
72
开源设计工作台nexu-io/open-design
OpenDesign:首个协作式 AI 设计智能体工作区
★ 105,709已汉化DSH
71.8
GPT 图像提示词库freestylefly/awesome-gpt-image-2
Prompt as Code | GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+…
★ 34,534已汉化DSH
71.5
多智能体编码工作区spacering-net/codeg
多智能体协作的 AI 编程工作区:汇总 Claude Code、Codex、OpenCode、Pi、Grok Build 等来源的会话。支持桌面应用、自托管服务器或 Docker。
★ 4,319已汉化DSH
71.5
AI 用量桌面小部件Javis603/token-monitor
EN | 简 | 繁 | KO | JA | PT
★ 3,533已汉化DSH
71.1
架构图生成器tt-a1i/archify
把你想理解、规划或分享的事,变成可以互动的可视化作品。
★ 93,105已汉化DSH
71.1
这是你的仓库?认领条目