dsh-image-import:在 Harness 裏導入更多圖片格式

前言

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 會等比縮小,避免撞上宿主的像素上限。

三條導入路徑

  1. 拖放:把圖片直接拖進輸入框。
  2. 粘貼:在支持粘貼文件的系統裏使用 Ctrl+V。
  3. 點按鈕:輸入框左下角工具條會多出圖片按鈕,可一次選擇多張。

轉換完成後,界面底部會提示「已轉換 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 近似,可能與源文件有色差。

延伸閱讀

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜