21.4. convert コマンド
convert
は Mac のターミナル上で使う、画像を編集するためのコマンドです。
画像のフォーマット (保存形式) を変換したり拡大・縮小をしたりといった操作が簡単にできます。
複数のファイルを一括で処理する目的にも向いています。
以下では主要な機能である「フォーマットの変更」「画像の拡大・縮小」「画像の切り取り」「解像度の指定」「回転と反転」「背景の透過」「画像の合成」「グレースケールと 2 値化」「画質の変更」に焦点を当て、convert コマンドの使い方を説明します。ターミナルの使い方については 13. コマンドの基本 を参考にしてください。
動作確認 #
convert コマンドを利用可能かどうかを、ターミナルで convert -version
と入力して確認します。
ターミナルへのコマンド入力方法やパスの表記法は 13. コマンドの基本
で説明しました。
ECCS iMac端末なら、以下のようにバージョンやcopyright表記が表示されます。
Version: ImageMagick 7.0.10-59 Q16 x86_64 2021-01-24 https://imagemagick.org
Copyright: (C) 1999-2021 ImageMagick Studio LLC
...
convert は imagemagick
というフリーソフトウェアとして配布されています。mac なら homebrew からインストールすることができます。
フォーマットの変更 #
使い方の基本は、コマンド名の convert に続けてファイルのパスを2つ入力します。それぞれ入力画像と出力画像に対応します。
画像フォーマットの変更は、ファイル名の拡張子で指示します。
たとえば pict.jpeg
が手元にあるときに、png
形式に変換した pict.png
というファイルを作るように示す指示は以下になります。
他の多くのコマンドと同様に、指示に成功したら、無言でプロンプトが戻り次の入力待ちになります。 エラーが起こったときは、エラーメッセージが文字列で表示されます。
png
, jpeg
だけでなく pdf
, tiff
, svg
など多くの形式に対応しており、相互に変換することが可能です。
画像の拡大・縮小 #
画像のサイズは変更を -resize
オプションで指定できます。たとえば次の例では hoge.jpg の中身を 50% のサイズに縮小した画像を hoge2.jpg という名前で保存します。
パーセント指定ではなく、ピクセルサイズを直接指定してもサイズ変更ができます。たとえば次の例では hoge.jpg を横 1024 ピクセル、縦 768 ピクセルの箱にぴったり収まる大きさに変換し、それを hoge2.jpg に保存します。
元の画像の比率を保存せずに特定の大きさに変換したい場合、次のように縦横のピクセルサイズの後ろに ! 記号をつけます。
画像の切り取り #
-crop
オプションを使うと、画像の一部を切り出すことができます。例えば次の例では、「hoge.png の左上から右に 50px, 縦に 100px の点を原点とし、そこから横 150px, 縦 200px の長方形」を切り取り、それを hoge2.png に保存します。
指定する順序は「横の長さ、縦の長さ、原点の x 座標、原点の y 座標」です。
解像度の指定 #
解像度を指定するには -density
オプションを使います。このオプションが効果を発揮するのはベクタ形式の画像をラスタ形式に変換する時です (ベクタ形式とラスタ形式については
14.4. 画像の符号化
を参照してください)。たとえば
とすると hoge.pdf が 150dpi (1 インチ幅に 150 ピクセル) の解像度を持つ PNG 形式に変換され、その結果が hoge.png に保存されます。
回転と反転 #
convert コマンドに -rotate
オプションをつけると、任意の角度の回転ができます。例えば次の例では、hoge.jpg を時計回りに 30 度回転します。
また -flip
, -flop
オプションを使うことで、それぞれ上下の反転と左右の反転ができます。次の例では hoge.bmp の上下を反転させたものが hoge2.bmp に保存されます。
背景の透過 #
-transparent
オプションを使うと、特定の色を透過色にすることができます。たとえば背景が白の hoge.png という画像に対して
とすると、背景が透過色になった hoge2.png が作れます。
画像の合成 #
-composite
オプションを用いると、2 つの画像の合成ができます。たとえば
とすると、hoge1.png の左上から横に 50px, 縦に 100pxの点を原点とし、その上に hoge2.png を合成した画像が hoge.png に保存されます。
グレースケールと 2値化 #
-type
オプションで GrayScale
を指定すると、画像をグレースケールに変換できます。たとえば
とすれば、hoge.png をグレースケールにしたものが hoge2.png に保存されます。また -threshold オプションで
とすると, 特定の明るさを境界にして画像を白黒 2 色に変換できます。
画質の変更 #
画像の画質を変更するには -quality
オプションを使います。変更すると言っても元の画像以上に画質を上げることはできませんので、このオプションはもっぱら画質を下げたいとき (たとえば、必要以上の解像度で紙をスキャンしてしまったとき) に使います。
-quality に続いて、画質を 0 から 100 までの整数で指定できます。数字が大きいほど画質が高くなります。たとえば次の例では、hoge.jpg の画質を 50 にしたものが hoge2.jpg に保存されます。
ただ、どの数値にすればどの程度の画質になるのかは、人間が見てみないと分かりません。実際に使う場合は試行錯誤が必要でしょう。