古都で働く、プリングルズ大好き似非システム管理者が、お仕事関係の備忘録を書いたり、日々のあれこれを書いたり。
[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
CentOSでImageMagickを使う
Image Magickはコマンドラインから画像を扱うためのソフトウェア。様々な言語で利用することができるので、cgiなどとしてネット上で使われている事も多い。沢山の画像に一気に加工を施すことが出来るので、リサイズやサムネイル作成、透かしを入れたりする時に便利だ。今回はImage MagickをCentOSにインストールし、サーバ上で画像のリサイズを行う。最終的には、cronにリサイズのためのスクリプトを登録して、決まった時間がくると自動的にリサイズされるようにする。
まずは、CentOSにImageMagickをインストールしよう。これまでと同じように、yumを使えば簡単にインストールできる。 yum install ImageMagick でインストールできるはずだ。この時、「I」mage「M」agickと、IとMが大文字である事に注意したい。つい小文字のままimagemagickとしてパッケージが見つからないという事をやってしまう・・・
ImageMagickは画像を扱うための様々なコマンドの集合であり、使うためにはそのコマンドを知っておかなければいけない。しかし全てを説明できるほどImageMagickについて知っている訳でもないので、ここでは今回使うconvertについてしか書かない(書けない)。しかし、とりあえずやらせてみたい画像の加工は、ほとんどがconvertで事足りる・・・ような気がする。
ImageMagickがインストールできたら、まずは convert --help としてヘルプを見てみよう。ヘルプが表示されれば、無事インストール完了だ。多機能なだけに、ヘルプも長いはずだ。上から全て読んでもいいが、そこまでの根気もないので、確認だけに留めておく。
ネット上にはImageMagickについて説明したページも多い。リサイズ、回転、透かしを入れるなど一括でやらせたい事があれば、ネットで検索すると大体、やり方がすぐに見つかる。が、それではあまりにも他人任せすぎるので、ここでも簡単にやり方に触れておく(備忘録だし)。
・リサイズ
convert -geometry size input output でできる。input、outputはそれぞれ、読み込むファイル名・書き出すファイル名。書き出すファイル名を指定しない場合でも、上書きはされないようだ。sizeでは、リサイズしたい画像のサイズを横x縦で指定する。横640px、縦480pxで保存したい場合は、-geometry 640x480 となる。しかし、このオプションでサイズを指定しても、縦横の比率は明示しない限り保存される。縦長な画像を無理やり比率を変えてリサイズしたい!という場合は、サイズを指定する際に!をつける。つまり、 -geometry 640x480! というように。逆に、縦横比は保存されるので、縦か横のサイズだけを指定してもリサイズは行われる。横640pxになればよい場合は、-geometry 640x 、縦が640pxになればよい場合は、--geometry x640 と指定するとよいだろう。
・解像度の変更
convert -density value input output でできる。valueは、解像度の値(dpiが基本のようだ)。デジカメの設定によって、撮影時の解像度がまちまちになっている事がよくある。300dpiだったり180dpiだったり72dpiだったり。ウェブで使う場合は72dpiにする事が多いので、バラバラな解像度を一括して変更できるのは非常にありがたい。
・回転
画像を連続して回転させることはあまりないのだが、念の為。 convert -rotate 角度 input output で回転させることができる・・・はず。
・透かしを入れる
画像に透かし用の画像を合成する作業は、リサイズの次に多い作業だ。 これはconvertではなくcompositeを使う。 composite -watermark % input1 input2 output とするとできる。input1をinput2に%の透過率で重ねあわせ、outputへ出力する。この時、上記の例ではinput2の位置が左上にくるので、重ねあわせの位置を指定したいときは、-gravity オプションを使う。中央に合成したい時は、 -gravity center で中央にくる。その他の位置は、上を北と見立てて、north、northeast・・・という具合に指定ができる。また、 -geometry オプションを併用する事で、さらに細かな位置していも可能。
※-watermark オプションだとどうも重ね合わせが変なので、先に50%透過させたpng画像を用意した上で -watermark % の代わりに -compose atop とすると、思い通りの結果が得られた。透過率を指定するオプションもあると思うのだけれど・・・まだ謎。
※※ -dissolve %x% オプションを使用すれば、2枚の画像それぞれの透過率を%指定して合成できるっぽい。
その他にもたくさんの機能があり、なかなかその全てを使いこなすのは難しいが、Photoshopなどでポチポチとアクションを実行させるよりもよほど効率がよいので、ぜひもっと使いこなせるようになりたいところだ。
PR