前言¶
DeepSeek Harness(DSH)对话输入框的附件通道,浏览器侧只接受 PNG、JPEG、WebP、GIF。dsh-client-ui-conversation 里对 MIME 类型做了硬编码白名单,拖入 TIFF、BMP、HEIC 等文件时,往往只会看到「不支持的图片格式」。与此同时,原生界面也没有通用的「选文件」入口,多数场景只能粘贴或拖放。
dsh-image-import(维护者 lindingkao)不改宿主源码,而是在浏览器里先于官方逻辑拦截这些文件,自行解码并转成 PNG 或 JPEG,再以原生拖放事件交回 Harness。对后端和对话逻辑来说,收到的仍是宿主本来就认识的图片。社区目录 SkillHub 将其归类为「趣味换装」;仓库当前星标为 0,许可为 MIT。
这是什么¶
一句话:给 DSH Web 客户端增加 BMP、TIFF、TGA、PCX、Netpbm、ICO、AVIF、SVG、HEIC、JPEG 2000、PSD 等格式的导入能力,输出统一为宿主可接受的 PNG/JPEG。
插件仅注入浏览器侧(dsh.client.platform: web,注入点 @deepseek-ai/dsh-client-ui-conversation),版本 0.1.0。
核心功能¶
格式与解码¶
| 格式 | 解码方式 |
|---|---|
| TIFF(未压缩 / LZW / PackBits / Deflate,1–16 位,灰度 / 调色板 / RGB / RGBA,含 Predictor 2) | 插件自带解码器 |
| TGA(未压缩 / RLE,8/15/16/24/32 位,调色板与灰度) | 插件自带解码器 |
| PCX(8 位 1/3/4 平面、1 位多平面) | 插件自带解码器 |
| Netpbm(P1–P6,ASCII 与二进制) | 插件自带解码器 |
| BMP / ICO / AVIF / SVG / JPEG 2000 | 浏览器 createImageBitmap / <img> |
| HEIC / HEIF / PSD / RAW | 取决于当前浏览器是否内置解码器;解不了会明确提示 |
输出默认为 PNG;无 alpha 且体积超过 4 MB 时自动改用 JPEG(质量 0.92)。单边超过 4096 px 会等比缩小,避免撞上宿主的像素上限。
三条导入路径¶
- 拖放:把图片直接拖进输入框。
- 粘贴:在支持粘贴文件的系统里使用
Ctrl+V。 - 点按钮:输入框左下角工具条会多出图片按钮,可一次选择多张。
转换完成后,界面底部会提示「已转换 N 张图片为 PNG」。
实现要点(只读了解)¶
- 在 DOM 捕获阶段拦截 drop,先于
dsh-client-ui-attachment在document冒泡阶段的监听器。 - 用
new DataTransfer()装入转码后的File,再向[data-composer-card]重派drop;带__dshImageImportRerouted标记,避免二次转换。 - 客户端脚本由
tools/build.mjs内联codec.js与bridge.js,避免在 Harness web bundle 里出现import/export。
安装与启用¶
从 GitHub 安装(推荐):
dsh plugin --profile <profile> add github:lindingkao/dsh-image-import
从本地目录安装(开发用):
dsh plugin --profile <profile> add /path/to/dsh-image-import
也可在 Harness 插件管理器里通过 install_bundle 指向本仓库目录。插件只改浏览器侧,安装后需刷新页面方能生效。
DSH 生态主张「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方并无官方从属关系。
典型用法¶
装好插件并刷新页面后,任选一种方式把非常规格式图片送进输入框即可,无需额外配置项。一次最多转换 8 张。若格式由浏览器解码(如部分 HEIC/PSD),需以当前浏览器能力为准;TIFF/TGA/PCX/Netpbm 由插件自解,不依赖浏览器。
适用场景与注意¶
适合谁:经常在 Harness 里附图、但素材来自设计工具、扫描仪或相机(TIFF、PSD、HEIC 等)的开发者或使用者。
运行权限:插件随当前 DSH 进程在浏览器中执行,安装前宜自行阅读仓库源码与 MIT 许可证,确认行为可接受。
已知限制(摘自 README):
- 可用格式上限仍受浏览器解码能力约束。
- 输出为 PNG(无损)或 JPEG(有损);CMYK TIFF 等会按插件内 RGB 近似,可能与源文件有色差。