ImageMagick v7 インストール・コマンド・オプション一覧
ImageMagickはコマンドラインで画像の変換・圧縮・リサイズ・合成などを一括処理できる強力なツールです。本記事は「初めて使う方向け」に、インストール方法、よく使うコマンドを表で一覧化、用語のやさしい解説、注意点、FAQ、トラブルシューティングまでをひとまとめにしました。
ImageMagick v7 以降では、すべてのコマンド操作の先頭に
magick
を付けて実行します(例:magick input.jpg ... output.jpg
)。これは「magick」というコマンド(プレフィックス)を使うことで、ImageMagick の各種機能(変換・加工・情報取得など)を一貫して呼び出せる仕組みです。
特に Windows では、従来のconvert
コマンドが OS 標準のファイル変換コマンドと名前が重複するため、必ずmagick
を使うのが安全です。
ImageMagickとは?
-
画像の「変換(JPEG→PNG など)」「サイズ変更」「切り抜き」「回転」「合成(透かし・ロゴ)」「最適化(圧縮)」などをコマンドで実行可能。
-
バッチ処理(大量ファイルの一括処理)に強く、再現性が高い(同じコマンドを流せば同じ結果)。
-
Mac / Linux / Windows で利用可。
ImageMagickのインストール
macOS (Homebrewを使うのが一般的で簡単)
-
Homebrewをインストール (※未インストールの人のみ)
-
Homebrewでimagemagickをインストール(ターミナルを開いて以下コマンドを実行)
zsh
brew install imagemagick
3.バージョン確認
zsh
magick -version
すぐ使える「頻出コマンド」一覧
コマンド | 目的・説明 | よく使うオプション(説明) | 使用例 |
---|---|---|---|
magick | 画像変換・加工の基本コマンド(v7) | -resize :画像サイズ変更-quality :圧縮率・画質指定-strip :メタデータ削除-auto-orient :EXIF情報に基づき自動回転-background :背景色指定-gravity :基準位置指定(中央・右下など)-extent :キャンバス拡張・切り抜き | magick in.jpg -auto-orient -resize 1200x -quality 85 -strip out.jpg → 画像を自動回転し、横幅1200pxにリサイズ・圧縮・メタデータ削除して保存 |
magick identify | 画像情報の表示 | -format :表示フォーマット指定(%m:形式, %w:幅, %h:高さ など) | magick identify -format "%m %wx%h %r\n" in.jpg → 画像形式・サイズ・色深度などを表示 |
magick mogrify | 破壊的に上書きする一括処理 | -path :出力先ディレクトリ指定-format :出力形式指定-resize :リサイズ-quality :画質指定 | magick mogrify -path dist -format jpg -resize 1200x -quality 85 src/*.png → PNG画像を一括でJPEG変換・リサイズし、distフォルダに保存 |
magick montage | 画像をタイル状に並べて1枚に | -tile :並べる行列数指定(例: 3x)-geometry :各画像のサイズ・間隔-background :背景色指定 | magick montage a.jpg b.jpg c.jpg -tile 3x -geometry 400x400+10+10 -background white out.jpg → 3枚の画像を横3列で並べて1枚の画像に合成 |
magick composite | 合成(重ね合わせ、透かし) | -gravity :合成位置指定(例: southeast=右下)-geometry :位置調整(+X+Y)-dissolve :透過率指定 | magick composite -gravity southeast -geometry +20+20 -dissolve 30 wm.png in.jpg out.jpg → in.jpgの右下にwm.pngを30%の透過で重ねる |
magick compare | 2画像の比較(差分出力/評価) | -metric PSNR/MSE/AE :比較指標(PSNR=画質, MSE=誤差, AE=差分ピクセル数)-fuzz :許容誤差(色の近似判定) | magick compare -metric AE a.jpg b.jpg diff.png → a.jpgとb.jpgの差分をdiff.pngに出力し、差分ピクセル数を表示 |
magick -crop | 切り抜き | -gravity :切り抜き基準位置+repage :余白情報リセット | magick in.jpg -gravity center -crop 800x800+0+0 +repage out.jpg → 画像の中央を800x800で切り抜く |
magick -rotate | 回転/自動回転 | -auto-orient :EXIF情報で自動回転-rotate :指定角度で回転 | magick in.jpg -auto-orient -rotate 90 out.jpg → 画像をEXIF情報で自動回転後、さらに90度回転 |
magick -colorspace | 色変換(例: グレースケール) | -colorspace Gray :グレースケール変換-profile :ICCプロファイル適用・変換 | magick in.jpg -colorspace Gray out.jpg → 画像をグレースケール(白黒)に変換 |
magick -thumbnail | サムネイル作成(高速) | -thumbnail :高速リサイズ-strip :メタデータ削除-extent :キャンバス拡張・切り抜き | magick in.jpg -thumbnail 400x400^ -gravity center -extent 400x400 -strip thumb.jpg → 400x400の正方形サムネイルを中央トリミングで作成 |
magick -annotate | テキスト描画 | -font :フォント指定-pointsize :文字サイズ-fill :文字色-annotate :描画位置・内容指定 | magick in.jpg -font Arial -pointsize 48 -fill white -gravity south -annotate +0+30 "Sample" out.jpg → 画像下部に白文字で「Sample」と描画 |
magick | GIF最適化 アニメGIFの容量削減 | -coalesce :各フレームを完全画像化-fuzz :色の近似合成-layers Optimize :最適化処理 | magick in.gif -coalesce -fuzz 5% -layers Optimize out.gif → アニメGIFを最適化してファイルサイズを削減 |
ヒント: ImageMagick は「引数の順序が結果に影響」します。基本は「入力 → 処理 → 出力」の順で書き、加工オプションは入力の後・出力の前に置きましょう。
代表的なオプション早見表
機能 | オプション例・説明 |
---|---|
リサイズ | -resize 1600x (長辺を 1600px に) / -resize 800x800^ (短辺基準ではみ出しトリミング前提) |
切り抜き | -crop 800x800+X+Y / 中央なら -gravity center -crop 800x800+0+0 +repage |
画質/圧縮 | -quality 75..85 (JPEG)、-quality 75..85 -alpha quality=90 (WebP) |
色空間 | -colorspace sRGB / グレー化 -colorspace Gray |
メタデータ削除 | -strip |
自動回転 | -auto-orient |
テキスト | -font -pointsize -fill -annotate +x+y "TEXT" |
透過処理 | PNG→JPG で白背景 -background white -alpha remove -alpha off |
よく使う実用レシピ(コピペで使える)
画像のリサイズ(縦横比を維持)
magick in.jpg -auto-orient -resize 1600x -quality 85 -strip out.jpg
正方形サムネイル(中央トリミング)
magick in.jpg -thumbnail 400x400^ -gravity center -extent 400x400 -strip thumb.jpg
透かし(右下にロゴを30%で重ねる)
magick composite -gravity southeast -geometry +20+20 -dissolve 30 logo.png in.jpg out.jpg
まとめて WebP に変換(圧縮率高・高画質)
magick mogrify -path webp -format webp -quality 80 -resize 1600x -strip *.jpg
PDF の1ページ目だけを画像にする(高解像度)
magick -density 200 input.pdf[0] -quality 90 -strip page1.jpg
グレースケール化 + 軽量化
magick in.jpg -colorspace Gray -quality 75 -strip out.jpg
初心者向け 用語のやさしい解説
- DPI(解像度): 印刷解像度の指標。Web では主に画素(px)が重要で、DPI は見た目に直接影響しないことが多い。
- 画素数(ピクセル寸法): 画像の横幅×縦幅。ファイルサイズや見た目に直結。
- 色空間(sRGB/AdobeRGB など): 色の表現範囲。Web なら sRGB が無難。異なる色空間は色転びの原因に。
- EXIF/メタデータ: 撮影日時やカメラ情報、位置情報など。
-strip
で削除でき、プライバシー対策や軽量化に有効。 - ICC プロファイル: モニタや色空間の特性を記述。
-profile
で適用/変換。 - アルファチャンネル: 透明度の情報。PNG などで背景透過に使われる。
- デリゲート(delegate): HEIC/WebP/PDF など特定形式を扱うための外部ライブラリ群。未導入だと読み書きできない場合がある。
使用時の注意事項・ベストプラクティス
-
破壊的コマンドに注意:
mogrify
は上書きします。元データ保護のため-path
で出力先を分けるか、magick input output
形式を推奨。 -
-quality
は「画質%」ではない: 主に JPEG の量子化強度。一般的に 75–85 で十分高画質・小容量のバランス。 -
色が変わる問題: 入出力で色空間が違うと色転びします。Web 目的なら
-colorspace sRGB
か、-profile sRGB.icc
を明示。 -
HEIC/WebP/PDF の対応: 環境に
libheif
,webp
,ghostscript
が必要。未導入だと「delegate がない」エラーに。 -
メモリ/ディスク制限: 超高解像度の一括処理では
-limit memory 1GiB -limit map 2GiB
などの制限指定を検討。 -
ファイル名の扱い: 空白や日本語を含む場合は引用符で囲む(例:
"magick \"入力 画像.jpg\" ..."
)。 -
Windows は
convert
禁止: OS のconvert
と衝突します。必ずmagick
を使用。 -
オプション順序: 入力 → 加工 → 出力の順で。順序を変えると結果が変わるのが ImageMagick の特徴。
-
メタデータの取扱い: 公開用途は
-strip
で EXIF を落としてプライバシー保護・軽量化。
よくある質問(FAQ)
Q | A |
---|---|
v6 と v7 の違いは? どう書けばいい? | v7 では magick プレフィックスが基本。従来の convert は互換として magick convert の形で利用可能。Windows では convert が別用途と衝突するため magick 一択。 |
画質を保ったまま容量を減らしたい。 | JPEG は -quality 75..85 -strip -auto-orient が定番。さらに -resize で画素を減らすと効果大。WebP なら -format webp -quality 75..85 が有効。 |
EXIF を残したい/消したい。 | 残す場合は何もしない。消す場合は -strip を指定。 |
画像の色が変わって見える。 | 入力の色空間や ICC プロファイルが原因。-colorspace sRGB で統一、または -profile sRGB.icc を適用。 |
透過 PNG を JPEG にすると背景が黒/グレーになる。 | JPEG は透過非対応。白などに敷く: magick in.png -background white -alpha remove -alpha off out.jpg 。 |
バッチでフォルダ内の画像を一括リサイズしたい。 | magick mogrify -path dist -resize 1200x -quality 85 -strip src/*.jpg のように実行。-path で元画像の破壊を回避。 |
トラブルシューティング
エラー・現象 | 対処 |
---|---|
エラー: command not found | インストールや PATH を確認。mac は brew install imagemagick 後に magick -version 。 |
エラー: no decode delegate for this image format | 対応ライブラリ(HEIC→libheif , WebP→webp , PDF→ghostscript )を導入し、再度確認。 |
エラー: not authorized に関する PDF/PS の読み込み制限 | セキュリティポリシー(policy.xml )や ghostscript の導入を確認。安全に配慮の上、許可設定を調整。 |
エラー: insufficient memory(メモリ不足) | -limit memory 1GiB -limit map 2GiB 等で制限調整、解像度を下げる、一時ディスクの空き確保。 |
出力がおかしい/処理されない | オプション順序を見直す(入力→加工→出力)。magick identify で入力情報を把握してから処理。 |
Windows で convert が別コマンドになる | かならず magick を使う。 |
まとめ
-
まずは
**magick**
を使い、入力→加工→出力の順序を意識。 -
表のコマンドとレシピをそのまま試し、慣れたら
mogrify
で一括化。 -
色空間・メタデータ・
-quality
の意味を押さえると、画質と容量の最適化が一気に進みます。
誤りや不足に気付いたら、必要なライブラリ(
ghostscript
,libheif
,webp
など)の導入、オプション順序の見直し、色空間の明示を追加すれば精度が上がります。