「ImageMagick」は、非常に多くの画像形式に対応し、コマンドラインツールで、複雑な画像編集作業も効率的に行える無料のソフトウェアのため、非常に便利なツールです。備忘録として、よく使うコマンドや便利なコマンド、また概要やインストール方法などをまとめてみました。
目次
ImageMagickとは?
ImageMagick(公式) は、デジタル画像の編集と操作に使用される、無料のオープンソースソフトウェアです。ビットマップ イメージの作成、編集、構成、変換に使用でき、JPEG、PNG、GIF、TIFF、PDF などの幅広いファイル形式をサポートしています。
ImageMagick には、複雑な画像処理タスクを実行するためのコマンドライン インターフェイスと、その機能をソフトウェア アプリケーションに統合するための API が含まれています。C で書かれており、Linux、Windows、macOS などのさまざまなオペレーティング システムで使用できます。
ImageMagickの特徴的な機能
- コマンドライン処理(コマンドラインからImageMagickを利用)
- 画像のリサイズ、回転、トリミング、コントラスト調整、ぼかし。クロップなど
- 色の調整、フィルターの適用、特殊効果の追加
- 画像形式の変換(例:PNGからJPEG)
- 透明度の操作、アルファチャネルの追加
- テキストや図形の追加
- 画像に図形やテキストを追加
- 画像の合成
- アニメーションGIFの作成
- 画像の品質や圧縮レベルの調整 など
PCの作業環境
- PC:MacBook Pro (13インチ、M1、2020)
- OS:macOS モントレー(ver12.6)
- ターミナル:zsh
- 設定:ロゼッタ
ImageMagickのインストール (for Mac OS)
macOSでは、Homebrewなどのパッケージマネージャを使ってImageMagickをインストールするのが一般的です。
Homebrewを使う場合
Homebrewが未インストールの場合、まずHomebrewをインストールします。
そして、ターミナルを開いて以下のコマンドを実行します。
zsh
brew install imagemagick
インストールが完了したら、以下のコマンドでインストールを確認します。
zsh
magick -version
もしくは
zsh
convert -version
例
ImageMagick コマンド一覧 チートシート
ターミナルを開き、コマンドを入力します。
ターミナルの起動・使い方・基本的なコマンド
プログラミングやバージョン管理を行う際、OSやVS Codeなどの開発環境に搭載されているターミナルやコマンドラインツールで作業をする事があります。使い方を備忘録とし…
よく使うコマンドや便利なコマンドを以下にまとめました。
- 画像形式を変換する(PNG → JPG):
convert input.png output.jpg
- 画像形式を変換する (すべてのPNGs → JPGs):
mogrify -format jpg *.png
- 画像形式を変換する(SVG→PNG.1000DPI指定):
convert -density 1000 -units PixelsPerInch input.svg output.png
- 画像の情報を表示する:
identify input.jpg
- 画像のサイズを変更する:
convert input.jpg -resize 100x100 output.jpg
- JPGを品質50%に圧縮。幅1000:
convert input.jpg -quality 50% -resize 1000 output.jpg
- すべてのJPGを品質50%幅1000に圧縮する:
mogrify -quality 50% -resize 1000 *.jpg
- 画像のアスペクト比を維持しつつサイズ変更する:
- どの角から resize するかは -gravity 指定を使用。
- 例: 真ん中(center) 右下(southeast)で抜き出し
convert input.jpg -resize 100x100^ -gravity center -extent 100x100 output.jpg
convert input.jpg -resize 100x100^ -gravity southeast -extent 100x100 output.jpg
- 画像のクロップ(画像を特定のサイズにクロップする):
- オプションは -crop
- -crop (切り取りサイズ 幅x高さ)+(切り取り場所の左上 x + y)
convert input.jpg -crop 100x100+50+50 output.jpg
- 画像を回転する(90度時計回り):
convert input.jpg -rotate 90 output.jpg
- 画像を水平方向に反転する:
convert input.jpg -flop output.jpg
- 画像を垂直方向に反転する:
convert input.jpg -flip output.jpg
- 画像をグレースケールに変換する:
convert input.jpg -colorspace Gray output.jpg
- 画像の明度を調整する:
convert input.jpg -brightness-contrast 10x0 output.jpg
- 二つの画像を横に並べて結合する:
convert input1.jpg input2.jpg +append output.jpg
- 二つの画像を縦に並べて結合する:
convert input1.jpg input2.jpg -append output.jpg
- 画像にボーダー(枠)を追加する:
- 枠の色 -border (width) x (height)
convert input.jpg -bordercolor black -border 10x10 output.jpg
- 画像にテキストを追加する:
convert input.jpg -font Arial -pointsize 20 -draw "text 10,20 'Hello, World!'" output.jpg
- 複数の画像を一つのPDFに結合する:
convert *.jpg output.pdf