GUIの環境で画像を変換や加工する場合、柔軟に画像を変換や加工を行うことができますが、手間がかかります。
ImageMagickはCUI、つまり、コマンドで画像を変換や加工を行う環境を提供します。この記事では、convertコマンドで簡単な画像の変換や加工を行います。
目次
ImageMagickとは
ImageMagickとは、Apache2.0ライセンスで提供されるフリーソフトです。コマンドラインで画像を変換または加工を行うことができます。convertコマンドは、このImageMagickのコマンドになります。
インストール方法
Windowsでのインストール
ImageMagickのダウンロードページ(https://www.imagemagick.org/script/download.php)よりインストーラをダウンロードして、インストールすることができます。Windowsのインストーラはページの下のほうにあり、「Windows Binary Release」という見出しの下にインストーラをダウンロードできるリンクがあります。
基本的には、2017/06/28現時点では「ImageMagick-7.0.6-0-Q16-x64-dll.exe」をインストールすれば大丈夫だと思います。32bit版OSの場合、「x64」の部分が「x86」のものをインストールしてください。
「ImageMagick-7.0.6-0-Q16-x64-dll.exe」のインストール画面
ImageMagickのバージョンが7になってから、convertコマンドがmagickコマンドに変更されました。ImageMagick-7.0.6のバージョンだとmagickコマンドは、機能的にconvertコマンドほとんど同様なことができるそうですが、私が使用した感じだとコマンドライン引数の順番がconvertコマンドより厳しかったり、オプションのhelpがあまり充実していないと思いました。
なので、ImageMagickの従来のconvertコマンドが使用したい場合は、windowsのデフォルトのconvertコマンドが使えなくなりますが、「Install legacy utilities」にチェックを入れるとImageMagickの従来のconvertコマンドなどがインストールされます。
Linuxでのインストール
ubuntuの場合は以下のコマンドでインストールすることができます。
1 |
sudo apt-get install imagemagick |
また、最新のソースコードからインストールしたい場合は
公式サイトからImageMagick.tar.gzをダウンロードし、
1 |
tar xvzf ImageMagick.tar.gz |
で展開し、展開したImageMagickのディレクトリに移動して、
1 2 3 4 |
./configure make sudo make install sudo ldconfig /usr/local/lib |
でインストールすることも可能です。
convertコマンドで画像変換
コマンドプロンプトまたはシェルでコマンドを使用することが可能です。
convertコマンドは
1 |
convert 入力画像ファイル 出力画像ファイル |
で画像を変換することができます。
例えば、pngファイルからjpgファイルに変更する場合は
1 |
convert img.png img.jpg |
のように変更することができます。
また、オプションをつけて、
1 |
convert オプション 入力画像ファイル 出力ファイル |
または、
1 |
convert 入力画像ファイル オプション 出力画像ファイル |
で何かの画像処理を加えることができます。
convertコマンドの代わりにmagickコマンドを使う場合は、
1 |
magick 入力画像ファイル オプション 出力画像ファイル |
のようにしなければ、(7.0.6のバージョンでは)エラーが起きてしまうことに注意が必要です。
また、helpオプションに関しても、convertコマンドより充実していないことに注意が必要です。
大量の画像をWeb用に変換
convertコマンドとforコマンドなどのループを用いることで、大量の画像ファイルを変換することが可能です。例えば、windowsのbatファイルに、
1 2 3 4 5 |
@echo off for %%i in (*.png) do ( convert %%i -resize "450x" -strip %%~ni.jpg ) |
のように記述し、実行すれば、その実行したディレクトリのすべてのpng画像ファイルをjpgファイルに変換し、さらに自動的に縦横比を維持したままで、横幅450pxで、画像のプロフィールやコメントなどの情報を消すことができます。
また、Linuxのシェルスクリプトの場合だと
1 2 3 4 5 6 |
#!/bin/bash for img in *.png do convert $img -resize "450x" -strip ${img/.png/}.jpg done |
で同じようなことが行えます。ここで、${変数名/pattern/string}は、bashのパラメータ展開の方法のひとつで「変数名」の「pattern」に最初にマッチした部分を「string」に置き換えます。
参考
ImageMagickのホームページ(https://www.imagemagick.org)