mcpField
S
screenshot-compression

screenshot-compression

github.com/zc277584121クリエイティブ・メディア03.8k 回インストール9 週間前に更新
リポジトリ

screenshot-compression について

PNG と JPEG のスクリーンショットを、形式を維持して圧縮するスキルです。pngquant と jpegoptim で画像を上書き処理し、ディレクトリの再帰処理や品質設定にも対応します。

主な機能

  1. 01PNG または JPEG 形式を維持
  2. 02画像を上書き圧縮
  3. 03ディレクトリの再帰処理
  4. 04PNG と JPEG の品質設定
  5. 05ファイルごとと全体の結果表示

活用シーン

  1. 01リポジトリへのコミット前にスクリーンショットを圧縮
  2. 02文書やブログ用画像を一括で縮小

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/zc277584121/marketing-skills --skill screenshot-compression

インストール後、Claude Code で/screenshot-compressionを入力して読み込まれたか確認します。

同梱ファイルscripts/compress_screenshots.py

詳細

スキル:スクリーンショットの圧縮

元の形式を維持したまま、スクリーンショット画像(PNG/JPEG)を上書き圧縮します。PNG には pngquant、JPEG には jpegoptim を使用します。どちらもスクリーンショットの内容(UI 要素、テキスト、ベタ塗りの色)の圧縮に非常に効果的です。

前提条件:システムに pngquant と jpegoptim がインストールされている必要があります。スクリプトは自動でインストールしません。ツールの有無を確認し、見つからない場合はインストール手順を表示します。


使用する場面

スクリーンショットのファイルサイズが大きすぎるため、形式を変えずにサイズを小さくしたい場合に使用します。よくある例:

  • GitHub の README、ブログ記事、ドキュメント用の画像を準備する
  • リポジトリへのコミット前に画像サイズを小さくする
  • スクリーンショットをディレクトリ単位で一括圧縮する

元の形式を維持する理由(WebP ではなく)

WebP は圧縮率に優れていますが、一部の環境では互換性が低くなります。

環境WebP の対応
ブラウザー(Chrome/Firefox/Safari/Edge)対応
GitHub Issues/PRs対応
WeChat エディター非対応
Word / PowerPoint非対応
一部のフォーラム/ブログのバックエンド環境による

PNG/JPEG を維持すれば、圧縮後の画像をあらゆる場所で使用できます。


デフォルトのワークフロー

python /path/to/skills/screenshot-compression/scripts/compress_screenshots.py <files-or-directories>

スクリプトは次の処理を行います。

  1. pngquant と jpegoptim がインストールされていることを確認します。見つからない場合はインストール手順を表示して終了します
  2. 拡張子からファイル形式を自動判定します
  3. 各ファイルを上書き圧縮します(元のファイルを上書きします)
  4. ファイルごと、および合計の圧縮結果を表示します

依存関係の確認

このスクリプトには、2 つのシステムツールが必要です。どちらかが見つからない場合は、処理を続けず、インストール手順を表示して終了します。ユーザーに代わってインストールしないでください。エラーメッセージを伝え、ユーザー自身でインストールできるようにしてください。

インストールコマンド:

# macOS
brew install pngquant jpegoptim

# Ubuntu / Debian
sudo apt install pngquant jpegoptim

# CentOS / RHEL
sudo yum install pngquant jpegoptim

スクリプトのオプション

フラグデフォルト説明
paths(位置引数)必須圧縮する画像ファイルまたはディレクトリ
-r、--recursiveオフディレクトリを再帰的に処理します
--png-quality80-95pngquant の品質範囲(最小値~最大値、0~100)
--jpeg-quality85jpegoptim の最大品質(0~100)

使用例

# Compress a single file
python .../compress_screenshots.py screenshot.png

# Compress all images in a directory
python .../compress_screenshots.py ./images/

# Recursive directory scan
python .../compress_screenshots.py ./docs/ --recursive

# High quality for code screenshots
python .../compress_screenshots.py *.png --png-quality 90-100

# Aggressive compression for thumbnails
python .../compress_screenshots.py *.jpg --jpeg-quality 70

品質調整ガイド

用途--png-quality--jpeg-quality
一般的なスクリーンショット(ドキュメント、Web ページ)80-9585
コードのスクリーンショット(テキストの鮮明さを重視)90-10090
サムネイル/プレビュー(サイズを優先)60-8070

仕組み

PNG(pngquant)
  • 24 ビットのトゥルーカラー(1,600 万色)を 8 ビットのパレット(256 色)に量子化します
  • Floyd-Steinberg ディザリングを使用して滑らかなグラデーションを実現します
  • スクリーンショットは最適な対象です。UI の色は通常、256 色を大きく下回るためです
  • 一般的な削減率:60~80%
JPEG(jpegoptim)
  • 指定された品質レベルで再エンコードします
  • --strip-all を使ってメタデータ(EXIF、ICC プロファイル、サムネイル)を削除します
  • ハフマンテーブルを最適化します
  • 一般的な削減率:20~50%

重要な注意事項

  • ファイルは上書き圧縮され、元のファイルが上書きされます。必要に応じて、事前にバックアップしてください。
  • 処理対象は .png、.jpg、.jpeg ファイルのみです。それ以外の形式は通知なしでスキップされます。
  • スクリプトが依存関係をインストールすることはありません。ツールが見つからない場合は、インストール手順を表示して終了します。

コメント