SKILL.md
唯讀
名稱
screenshot-compression
描述
使用 pngquant 和 jpegoptim 原地壓縮 PNG 與 JPEG 螢幕截圖,保留原始格式以確保最大相容性。
技能:螢幕截圖壓縮
原地壓縮螢幕截圖(PNG/JPEG),同時保留原始格式。使用 pngquant 處理 PNG,jpegoptim 處理 JPEG——兩者對螢幕截圖內容(UI 元素、文字、純色區塊)都非常有效。
前置需求:系統必須安裝
pngquant和jpegoptim。腳本不會自動安裝——它會檢查工具是否存在,若缺少則印出安裝說明。
使用時機
使用者有過大的螢幕截圖檔案,希望在不改變格式的情況下縮小檔案大小。常見情境:
- 準備圖片用於 GitHub README、部落格文章或文件
- 在提交到儲存庫前縮小圖片尺寸
- 批次壓縮目錄中的螢幕截圖
為何保留原始格式(而非 WebP)
WebP 壓縮效果更好,但在某些情境下相容性不佳:
| 情境 | WebP 支援 |
|---|---|
| 瀏覽器(Chrome/Firefox/Safari/Edge) | 是 |
| GitHub Issues/PRs | 是 |
| 微信編輯器 | 否 |
| Word / PowerPoint | 否 |
| 部分論壇/部落格後台 | 視情況而定 |
保留 PNG/JPEG 可確保壓縮後的圖片在任何地方都能使用。
預設工作流程
python /path/to/skills/screenshot-compression/scripts/compress_screenshots.py <檔案或目錄>
腳本將:
- 檢查
pngquant和jpegoptim是否已安裝——若未安裝,印出安裝說明並退出 - 根據副檔名自動偵測檔案格式
- 原地壓縮每個檔案(覆蓋原始檔案)
- 印出每個檔案及總壓縮摘要
相依性檢查
腳本需要兩個系統工具。若缺少任一工具,它會印出安裝說明並退出,而不繼續執行。不要代使用者安裝——只需傳達錯誤訊息,讓使用者自行安裝。
安裝指令:
# macOS
brew install pngquant jpegoptim
# Ubuntu / Debian
sudo apt install pngquant jpegoptim
# CentOS / RHEL
sudo yum install pngquant jpegoptim
腳本選項
| 標記 | 預設值 | 說明 |
|---|---|---|
paths(位置參數) |
必填 | 要壓縮的圖片檔案或目錄 |
-r, --recursive |
關閉 | 遞迴處理子目錄 |
--png-quality |
80-95 |
pngquant 品質範圍(最小值-最大值,0-100) |
--jpeg-quality |
85 |
jpegoptim 最大品質(0-100) |
範例
# 壓縮單一檔案
python .../compress_screenshots.py screenshot.png
# 壓縮目錄中所有圖片
python .../compress_screenshots.py ./images/
# 遞迴掃描目錄
python .../compress_screenshots.py ./docs/ --recursive
# 程式碼截圖高品質
python .../compress_screenshots.py *.png --png-quality 90-100
# 縮圖積極壓縮
python .../compress_screenshots.py *.jpg --jpeg-quality 70
品質調整指南
| 情境 | --png-quality |
--jpeg-quality |
|---|---|---|
| 一般螢幕截圖(文件、網頁) | 80-95 |
85 |
| 程式碼截圖(需清晰文字) | 90-100 |
90 |
| 縮圖/預覽(尺寸優先) | 60-80 |
70 |
運作原理
PNG(pngquant)
- 將 24 位元全彩(1600 萬色)量化為 8 位元調色盤(256 色)
- 使用 Floyd-Steinberg 抖色處理平滑漸層
- 螢幕截圖是理想對象——UI 顏色通常遠低於 256 種獨特值
- 典型縮減:60-80%
JPEG(jpegoptim)
- 以指定品質重新編碼
- 透過
--strip-all移除中繼資料(EXIF、ICC 設定檔、縮圖) - 最佳化 Huffman 表格
- 典型縮減:20-50%
重要注意事項
- 檔案是原地壓縮——原始檔案會被覆蓋。如有需要,請先備份檔案。
- 僅處理
.png、.jpg和.jpeg檔案。其他格式會靜默跳過。 - 腳本絕不安裝相依套件。若缺少工具,會印出安裝說明並退出。






