screenshot-compression

screenshot-compression

使用 pngquant 和 jpegoptim 原地壓縮 PNG 與 JPEG 螢幕截圖,保留原始格式以確保最大相容性。

0星標
0分支
更新於 2026/7/22
SKILL.md
唯讀
名稱
screenshot-compression
描述

使用 pngquant 和 jpegoptim 原地壓縮 PNG 與 JPEG 螢幕截圖,保留原始格式以確保最大相容性。

技能:螢幕截圖壓縮

原地壓縮螢幕截圖(PNG/JPEG),同時保留原始格式。使用 pngquant 處理 PNG,jpegoptim 處理 JPEG——兩者對螢幕截圖內容(UI 元素、文字、純色區塊)都非常有效。

前置需求:系統必須安裝 pngquantjpegoptim。腳本不會自動安裝——它會檢查工具是否存在,若缺少則印出安裝說明。


使用時機

使用者有過大的螢幕截圖檔案,希望在不改變格式的情況下縮小檔案大小。常見情境:

  • 準備圖片用於 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 <檔案或目錄>

腳本將:

  1. 檢查 pngquantjpegoptim 是否已安裝——若未安裝,印出安裝說明並退出
  2. 根據副檔名自動偵測檔案格式
  3. 原地壓縮每個檔案(覆蓋原始檔案)
  4. 印出每個檔案及總壓縮摘要

相依性檢查

腳本需要兩個系統工具。若缺少任一工具,它會印出安裝說明並退出,而不繼續執行。不要代使用者安裝——只需傳達錯誤訊息,讓使用者自行安裝。

安裝指令:

# 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 檔案。其他格式會靜默跳過。
  • 腳本絕不安裝相依套件。若缺少工具,會印出安裝說明並退出。