ImageMagickはLinux、Windows、macOS、iOS、Androidなど、様々なOSで動くクロスプラットフォームな画像処理ソフトウェア群。GPLでライセンスされたオープンソースソフトウェアのため様々な場面で権利関係を気にせずに自由に使える。最新のWebP画像フォーマットから誰も使っていないような古い画像形式まで表示から変換読み書きができる。さらに一部データが破損しているファイルも喪失部分を無視して力技で読み込んで出力できるなど色々な面白い使い方ができる。
対応している画像形式
自システムが変換できる画像形式をリスト化
$ magick convert -list format
真ん中の Mode
項目に注目してほしい. r
は読み込み w
は書き込みできることを表している。
このソフトウェアの使い方を覚えると重い画像編集ソフトを起動しなくて済むだけでなく、1つのコマンドで大量の画像を一括処理できるようになる。
コマンド書式
基本的にコマンドの書式は以下のようになるが Linux においては magick
を省略して convert
や mogrify
を言ったツールを直接指定しても問題ない。
$ magick ツール -オプション
単一の画像ファイルを処理したい場合は convert
コマンド、複数の画像ファイルを処理したい場合は mogrify
コマンドを用いる。
画像ファイルの形式を変換する
最初に画像のフォーマットを変換するコマンドから。しばしば画像の特徴に合っていない形式になっているファイルがある。こんなときに以下のコマンドを用いることでそのまま画像を圧縮変換してくれる。
コマンド例
単一の画像ファイルを変換
hoge.png
を hoge.jpg
というファイル名のJPEG形式に変換。他にオプションを利用しない場合は以下のように -format
オプションを短縮し出力するファイルの拡張子を指定するだけで変換することができる。
convert hoge.png hoge.jpg
また Photoshop Data (.psd)といった特殊なファイルの変換もできる。
convert hoge.psd hoge.png
複数の画像ファイルを変換
現ディレクトリにあるファイルをすべてJPEGに変換するコマンド。
mogrify -format jpg *.*
PNGファイルをJPG形式に変換後、オリジナルのPNGファイルを削除するコマンド。
mogrigy -format jpg *.png && rm *.png
変換品質について
変換する最の品質を指定するには -quality
オプションを用いる。
JPEGの場合は圧縮率を1から100で表現する。1が最も圧縮率が高いが画像の劣化が激しく、100は画像の品質は高いが圧縮率は最も引くい。圧縮率を指定しなかったときはソフトウェアが自動的に決定するが、できなかった場合は92に固定される。品質90よりも上の値を設定すると彩度情報がダウンサンプリングされない。
PNG画像フォーマットの場合は10桁で圧縮率、1桁でどのフィルターを適用するか決める。75
がデフォルトの値で、圧縮レベルは7でフィルター方式はおまかせという感じになる。PNG画像は可逆圧縮なので品質設定をいくら変えようが見た目にあまり変化はない。
コマンド例
ファイル hoge.png を圧縮レベル50でJPGファイルに変換。
convert -format hoge.png -quality 50 hoge.jpg
現ディレクトリ内すべてのPNGファイルを品質を指定して変換。圧縮レベルは7、フィルタはおまかせ。
mogrify -format jpg -quality 85 *.png
画像のリサイズについて
画像を拡大縮小する際は -resize
コマンドオプションを用いる。
アスペクト比を維持したままリサイズするには 横x縦
あるいは 横x
を指定するだけで良い。指定したサイズ内に収まるようにイメージを拡大縮小してくれる。
縦横比を無視して強制的にリサイズするには 横x縦!
と記述。イメージを引き伸ばしたり縮める。
コマンド例
hoge.jpg
をアスペクト比を維持したまま横幅1200ピクセルにリサイズする。
convert -resize 1200x hoge.jpg
ディレクトリ内のJPGファイルをアスペクト比を無視して1366×768にリサイズする。
mogrify -resize 1366x768! *.jpg
現ディレクトリにあるすべてのJPEGファイルの縦横を50%に縮小する。
mogrigy -resize 50% *.jpg
その他の変換
グレースケールに変換
convert hoge.png -colorspace Gray hoge.png
色は反転させる
convert -negate hoge.png
余白を切り落とす
convert hoge.jpg -trim hoge-trim.jpg
おわり
コメント