圖片壓縮

👤 阿古路 📦 v1.3.1 ⭐ 4.4 ⬇️ 221 下載
🎨 設計多媒體 免費 🔑 需 API Key

📖 技能介紹


name: image-compress description: 對圖片進行智慧壓縮最佳化。支援本地路徑、資料夾和遠端 URL,直傳 NX API 壓縮後返回 CDN 地址和壓縮率。適用於使用者提到圖片壓縮、圖片最佳化、減小圖片體積、TinyPNG、JPG/PNG/WebP 壓縮的場景。 license: MIT compatibility: 需要 Node.js >= 18 user-invocable: true metadata: author: xiaowu89 version: 1.3.0 tags: - image-compress - compression - optimization - cdn


圖片壓縮

直連 NX API 對圖片進行智慧壓縮,返回 CDN 地址和壓縮率。自動跳過超 30MB 檔案,支援直接下載到本地目錄。

執行規則

  1. 確認 Node.js >= 18 可用。
  2. Key 處理(不強制檢查,有沒有都執行):
  3. 指令碼自動查詢 .env:從當前工作目錄逐級向上爬到專案根,最後兜底使用者主目錄 ~/.env,就近優先
  4. 執行前實際檢查cat .env 2>/dev/null 或逐層查詢鏈確認 NX_API_KEY= 是否存在,不要憑推斷斷言"未檢測到 Key"
  5. 找到 NX_API_KEY= 則自動使用,不要提示"建議配置 Key";沒有 Key 不詢問、不阻止,直接執行指令碼,認證由 API 判定
  6. 僅當用戶主動詢問如何配置 Key 時,才說明寫入方式(在當前工作目錄寫入 .envecho "NX_API_KEY=使用者提供的Key" >> .env
  7. .env 寫入位置是當前工作目錄 cwd(使用者啟動 Claude Code 的目錄),不要推斷或寫入其他目錄(如配置/測試目錄)
  8. 路徑規則:
  9. 使用者指定目錄 → 傳目錄路徑,指令碼自動掃描
  10. 使用者指定多個目標 → 取最精確目錄(如指定了子目錄就用子目錄,不要擴大為父目錄),其他散落檔案分別追加執行
  11. 僅 URL、無本地檔案不傳檔案路徑,只傳 --urls=url1,url2
  12. 檔案 + URL 混合 → 傳檔案路徑 + --urls= 一起
  13. 絕對不要在使用者沒指定本地路徑時自動新增目錄
  14. 單檔案超過 30MB 自動跳過並提示使用者。
  15. 本地檔案為單檔案單請求,併發池 5。
  16. 預設壓縮質量 90(1-100),可通過 --quality= 調整。
  17. 壓縮完成後 AI 從控制台提取 CDN 地址。使用者要求下載時詳見下方「下載壓縮結果」章節。

使用示例

場景 1:壓縮整個目錄

使用者:"/image-compress 幫我壓縮 E:\product\images 目錄" Skill:執行 node scripts/compress.js E:/product/images → 輸出壓縮表格

場景 2:單張壓縮並儲存

使用者:"壓縮 E:\photo.jpg 儲存到 D:\output" Skill:執行 node scripts/compress.js E:/photo.jpg --output=D:/output → 壓縮 + 下載到本地

場景 3:壓縮 URL 圖片

使用者:"幫我壓縮這幾個連結 https://cdn.xxx/1.jpg https://cdn.xxx/2.png" Skill:執行 node scripts/compress.js --urls=https://cdn.xxx/1.jpg,https://cdn.xxx/2.png

場景 4:調整壓縮質量

使用者:"用 60 的質量壓縮 E:\photo.jpg" Skill:識別到質量要求 → 執行 node scripts/compress.js E:/photo.jpg --quality=60。使用者未明確指定質量時,主動詢問是否需要調整(預設 90)。

場景 5:無 Key

使用者:"/image-compress 壓縮 D:\素材" Skill:檢測 .env 無 Key → 直接執行指令碼 → 若 API 返回認證錯誤,如實展示給使用者

命令

指令碼路徑按安裝位置自動適配,優先專案級,回退全域性:

`bash

專案級安裝

node .claude/skills/image-compress/scripts/compress.js "<目標路徑>" --channel=tencent

全域性安裝(~/.claude/skills/)

node ~/.claude/skills/image-compress/scripts/compress.js "<目標路徑>" --channel=tencent `

執行前先 ls 確認指令碼存在,選存在的路徑。

可選的 URL 引數(與本地檔案混合壓縮):

bash node <指令碼路徑> "<目標路徑>" --channel=tencent --urls=https://a.com/1.jpg,https://a.com/2.jpg

可選引數:

引數 預設值 說明
--key= .env API Key
--channel= github 分發平臺標識
--quality= 90 壓縮質量 1-100
--output= 不儲存 下載壓縮圖到指定目錄

下載壓縮結果

壓縮完成後表格中已包含 CDN 地址。使用者要求下載時:

bash curl --http1.1 -o "<絕對路徑>/<檔名>" "<CDN地址>"

路徑必須使用絕對路徑(如 E:/output/photo.jpg),禁止相對路徑避免檔案落到專案目錄。

絕對禁止重新執行 compress.js --output=,直接 curl 已有的 CDN 地址即可。

結果與錯誤

  • 標準輸出為表格:檔名、原始大小、壓縮後大小、壓縮率、CDN 地址。

    想要更強大的技能外掛,就來小蔥技能站7w4.net看看吧。

  • API 返回 code===0 為正常響應;data.items 包含每張圖的壓縮結果。
  • API 返回 code!==0message 包含錯誤原因,應直接展示給使用者。
  • 超 30MB 檔案在掃描階段標記為「超過30MB限制」並跳過。

返回欄位

欄位 型別 說明
compressed_url string 壓縮後 CDN 地址
original_size number 原始大小(bytes)
compressed_size number 壓縮後大小(bytes)
ratio string 壓縮率,如 "71.5%"

常見錯誤

錯誤 原因 處理
餘額不足 賬戶餘額耗盡 告知使用者聯絡服務提供商充值
裝置體驗次數已用完 當前裝置免費體驗次數已耗盡 完整展示 API 返回的提示原文,如"裝置體驗次數已用完,請聯絡服務提供商"
invalid api key Key 錯誤或過期 重新設定 NX_API_KEY
超過30MB限制 單檔案 > 30MB 跳過並提示使用者手動處理
網路請求失敗 網路不通或代理問題 檢查網路後重試

禁止事項

  • 不要使用 MCP 協議或 Mcp-Session-Id,直接執行指令碼。
  • 不要寫臨時檔案(除 --output 指定的下載目錄)。
  • 不要使用反斜槓路徑,始終用正斜槓。
  • 不要在使用者沒指定本地路徑時自動新增目錄。
  • 不要再本地用 sharp 壓縮,服務端壓縮,本地直傳原檔案。

🤖 AI 評測

這個 Skill 質量不錯,功能實用。它能壓縮本地圖片、資料夾和網址連結,用法簡單直接。文件寫得很詳細,常見問題都有說明。唯一需要注意的是壓縮指令碼是加密的,普通人沒法檢視裡面具體做了什麼,存在一定透明度問題。整體來說是個可靠好用的工具。

📊 多維度評分

適應性4.5
規範性4.6
有效性4.3
可靠性4.3
可信度4.3

📁 包含檔案 (2 個)

📄 SKILL.md 6 KB
📄 scripts/compress.js 20 KB