以前、Macで画像を回転させたり切り抜いたり画像形式を変えたりする処理を行いました。画像処理は大昔Macの得意分野でしたが、Windows95登場以降はパソコンなら難なくこなせるようになりました。では、ワークステーション(死語)などにも搭載されていたUNIX系OSでは画像処理は何を使っていたのでしょう?いくつかあるうちの1つが今回説明する多分一番有名だと思われるImageMagicです。
・ImageMagick
https://imagemagick.org
ImageMagickは古くからあり多種多様な画像形式に対応しています。古い形式から新しい形式までとにかくいろいろ対応しているだけでなく、画像の加工や生成までもできてしまいます。ImageMagickは現在でもバージョンアップされています。なお、バージョン7からはコマンド名がmagickに変わっていたりするので、以前のバージョンから移行する場合は注意が必要です。(以前のバージョン6まではconvertやmogrifyという処理に応じたコマンド名)
なお、今回はバージョン6までのコマンド例はラズベリーパイで、バージョン7の場合はmacOSで説明してます。基本的にはインストールしてしまえばWindowsでもMacでもUNIX系OSでも同じように使用できます。なお、ImageMagickは多機能・高機能なのでよく使いそうな機能に絞って説明します。
今回もこれまでのようにサンプルで利用するファイル・ディレクトリはデスクトップのsampleディレクトリとしています。デスクトップにsampleディレクトリがない場合は作成しておいてください。(コマンド入力ならmkdir ~/Desktop/sampleとして作成することができます)
また、カレントディレクトリも上記の場所になります。cd ~/Desktop/sampleのようにコマンドを入力してカレントディレクトリを変更しておけばよいでしょう。
ImageMagicのインストール
ImageMagicは数多くのプラットフォームに対応しています。それぞれに対応したイメージ等をダウンロードしてインストールしてください。ここではラズベリーパイのOSであるRaspberryPi OSの例を示します。なお、MacやUbubtuなどでうまくインストールできない場合はHome brewを使うという方法もあります。特にMacの場合はHome brewを使った方がよいでしょう。
・Home brew
https://brew.sh
RaspberryPi OSの場合はターミナルから以下のコマンドを入れればImageMagicがインストールされます。
sudo apt-get update
sudo apt install imagemagic
無事にインストールできたか確認してみましょう。ターミナルから以下のようにコマンドを入力します。ImageMagickのバージョン等が表示されればOKです。ラズベリーパイにはバージョン6のImageMagickがインストールされているのが分かります。
convert -version
ImageMagickのバージョン7以降の場合は以下のコマンドでバージョンを確認できます。
magick -version
画像形式を変換する
それでは手始めに画像形式を変換してみましょう。ここではカレントディレクトリにあるJPEG画像をPNG形式に変換します。
画像形式を変換するにはconvertコマンドを使います。
convert 元のファイル名 変換後のファイル名
カレントディレクトリにある1.jpgを1.pngに変換するには以下のように指定します。なお、どの画像形式に変換するかは拡張子でも判断されます。もちろんオプションを指定して変換することもできます。
convert 1.jpg 1.png
バージョン7の場合は以下のように指定します。
magick convert 1.jpg 1.png
なお、iPhoneで撮影した写真のHEIC(HEIF)は、古いImageMagickでは処理できません。新しいバージョン7であれば以下のようにすることでHEIC(HEIF)形式からJPEG形式に変換することができます。
magick IMG_5817.HEIC 1.jpg
一括して変換する場合はmogrifyコマンドを使います。以下のようにするとカレントディレクトリ内にあるJPEG画像(拡張子はjpgのみ)をPNG形式に変換します。
mogrify -format png *.jpg
バージョン7の場合は以下のように指定します。
magick mogrify -format png *.jpg
バージョン7であればHEIF形式からWebP形式に変換することもできます。以下のように指定するとカレントディレクトリ内にあるHEIF形式をWebP形式に一括して変換できます。
magick mogrify -format webp *.heic
画像サイズを変更して保存する
画像形式は手軽に変換できるのが分かりましたので、次に画像サイズを変更した後に保存してみましょう。
画像サイズはオプションで-resizeを指定します。200x100や50%のように指定できます。200x100を指定すると横幅が200ピクセル、縦幅100ピクセルになります。50%を指定すると画像の横幅と縦幅が半分(50%)になります。
以下の例はカレントディレクトリにある1.jpgを10%のサイズに縮小し1s.jpgというファイル名で保存します。
convert 1.jpg -resize 10% 1s.jpg