mcpField
I
image-manipulation-image-magick

image-manipulation-image-magick

github.com/githubクリエイティブ・メディア40.5k9.7k 回インストール1 日前に更新
リポジトリ

image-manipulation-image-magick について

ImageMagickを使った画像処理スキルで、画像を確認・加工するユーザー向けです。Windows、Linux、macOSでのサイズ変更、メタデータ確認、形式変換、サムネイル作成に対応します。

主な機能

  1. 01画像サイズとメタデータの確認
  2. 02単一画像や複数画像のサイズ変更
  3. 03サムネイルの作成
  4. 04サイズに応じたファイル処理
  5. 05画像形式の変換

活用シーン

  1. 01編集前の画像サイズ確認
  2. 02画像コレクションのサムネイル作成
  3. 03画面に合わせた壁紙のサイズ変更
  4. 04サイズやファイル形式による一括処理

インストール

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

$npx skills add https://github.com/github/awesome-copilot --skill image-manipulation-image-magick

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

詳細

ImageMagick による画像操作

このスキルは、Windows、Linux、macOS システム全体で ImageMagick を使用した画像処理および操作タスクを可能にします。

このスキルを使用する場面

次のような必要がある場合にこのスキルを使用します:

  • 画像のリサイズ(単一またはバッチ)
  • 画像の寸法とメタデータの取得
  • 画像フォーマット間の変換
  • サムネイルの作成
  • さまざまな画面サイズ向けの壁紙の処理
  • 特定の条件による複数画像のバッチ処理

前提条件

  • システムに ImageMagick がインストールされていること
  • Windows: ImageMagick が magick として(または C:\Program Files\ImageMagick-*\magick.exe に)利用可能な PowerShell
  • Linux/macOS: パッケージマネージャー(apt、brew など)経由で ImageMagick がインストールされた Bash

主な機能

1. 画像情報
  • 画像の寸法(幅 x 高さ)の取得
  • 詳細なメタデータ(フォーマット、色空間など)の取得
  • 画像フォーマットの識別
2. 画像のリサイズ
  • 単一画像のリサイズ
  • 複数画像のバッチリサイズ
  • 特定の寸法でのサムネイル作成
  • アスペクト比の維持
3. バッチ処理
  • 寸法に基づく画像の処理
  • 特定のファイルタイプのフィルタリングと処理
  • 複数ファイルへの変換の適用

使用例

例 0: magick 実行ファイルの解決

PowerShell(Windows):

# Prefer ImageMagick on PATH
$magick = (Get-Command magick -ErrorAction SilentlyContinue)?.Source

# Fallback: common install pattern under Program Files
if (-not $magick) {
    $magick = Get-ChildItem "C:\\Program Files\\ImageMagick-*\\magick.exe" -ErrorAction SilentlyContinue |
        Select-Object -First 1 -ExpandProperty FullName
}

if (-not $magick) {
    throw "ImageMagick not found. Install it and/or add 'magick' to PATH."
}

Bash(Linux/macOS):

# Check if magick is available on PATH
if ! command -v magick &> /dev/null; then
    echo "ImageMagick not found. Install it using your package manager:"
    echo "  Ubuntu/Debian: sudo apt install imagemagick"
    echo "  macOS: brew install imagemagick"
    exit 1
fi
例 1: 画像の寸法の取得

PowerShell(Windows):

# For a single image
& $magick identify -format "%wx%h" path/to/image.jpg

# For multiple images
Get-ChildItem "path/to/images/*" | ForEach-Object { 
    $dimensions = & $magick identify -format "%f: %wx%h`n" $_.FullName
    Write-Host $dimensions 
}

Bash(Linux/macOS):

# For a single image
magick identify -format "%wx%h" path/to/image.jpg

# For multiple images
for img in path/to/images/*; do
    magick identify -format "%f: %wx%h\n" "$img"
done
例 2: 画像のリサイズ

PowerShell(Windows):

# Resize a single image
& $magick input.jpg -resize 427x240 output.jpg

# Batch resize images
Get-ChildItem "path/to/images/*" | ForEach-Object { 
    & $magick $_.FullName -resize 427x240 "path/to/output/thumb_$($_.Name)"
}

Bash(Linux/macOS):

# Resize a single image
magick input.jpg -resize 427x240 output.jpg

# Batch resize images
for img in path/to/images/*; do
    filename=$(basename "$img")
    magick "$img" -resize 427x240 "path/to/output/thumb_$filename"
done
例 3: 詳細な画像情報の取得

PowerShell(Windows):

# Get verbose information about an image
& $magick identify -verbose path/to/image.jpg

Bash(Linux/macOS):

# Get verbose information about an image
magick identify -verbose path/to/image.jpg
例 4: 寸法に基づく画像の処理

PowerShell(Windows):

Get-ChildItem "path/to/images/*" | ForEach-Object { 
    $dimensions = & $magick identify -format "%w,%h" $_.FullName
    if ($dimensions) {
        $width,$height = $dimensions -split ','
        if ([int]$width -eq 2560 -or [int]$height -eq 1440) {
            Write-Host "Processing $($_.Name)"
            & $magick $_.FullName -resize 427x240 "path/to/output/thumb_$($_.Name)"
        }
    }
}

Bash(Linux/macOS):

for img in path/to/images/*; do
    dimensions=$(magick identify -format "%w,%h" "$img")
    if [[ -n "$dimensions" ]]; then
        width=$(echo "$dimensions" | cut -d',' -f1)
        height=$(echo "$dimensions" | cut -d',' -f2)
        if [[ "$width" -eq 2560 || "$height" -eq 1440 ]]; then
            filename=$(basename "$img")
            echo "Processing $filename"
            magick "$img" -resize 427x240 "path/to/output/thumb_$filename"
        fi
    fi
done

ガイドライン

  1. ファイルパスは常に引用符で囲む - スペースを含む可能性のあるファイルパスは引用符で囲んでください
  2. & 演算子を使用する(PowerShell) - PowerShell では & を使用して magick 実行ファイルを呼び出します
  3. パスを変数に格納する(PowerShell) - よりクリーンなコードにするため、ImageMagick のパスを $magick に代入します
  4. ループで囲む - 複数ファイルを処理する場合は、ForEach-Object(PowerShell)または for ループ(Bash)を使用します
  5. 最初に寸法を確認する - 不要な操作を避けるため、処理前に画像の寸法を確認します
  6. 適切なリサイズフラグを使用する - 正確な寸法を強制するには !、最小寸法には ^ の使用を検討します

一般的なパターン

PowerShell のパターン
パターン: ImageMagick パスの格納
$magick = (Get-Command magick).Source
パターン: 寸法を変数として取得
$dimensions = & $magick identify -format "%w,%h" $_.FullName
$width,$height = $dimensions -split ','
パターン: 条件付き処理
if ([int]$width -gt 1920) {
    & $magick $_.FullName -resize 1920x1080 $outputPath
}
パターン: サムネイルの作成
& $magick $_.FullName -resize 427x240 "thumbnails/thumb_$($_.Name)"
Bash のパターン
パターン: ImageMagick のインストール確認
command -v magick &> /dev/null || { echo "ImageMagick required"; exit 1; }
パターン: 寸法を変数として取得
dimensions=$(magick identify -format "%w,%h" "$img")
width=$(echo "$dimensions" | cut -d',' -f1)
height=$(echo "$dimensions" | cut -d',' -f2)
パターン: 条件付き処理
if [[ "$width" -gt 1920 ]]; then
    magick "$img" -resize 1920x1080 "$outputPath"
fi
パターン: サムネイルの作成
filename=$(basename "$img")
magick "$img" -resize 427x240 "thumbnails/thumb_$filename"

制限事項

  • 大規模なバッチ操作はメモリを大量に消費する可能性があります
  • 一部の複雑な操作には追加の ImageMagick デリゲートが必要になる場合があります
  • 古い Linux システムでは、magick の代わりに convert を使用してください(ImageMagick 6.x と 7.x)

コメント