コマンドラインから『画像のサイズ変換』『フォーマット変換』などを行うソフトというかツールというか。
動的に画像変換処理が必要なサイトは、
GDを使うより
ImageMagicをサーバにインストールして使う方がいい。
※特にアニメーションGIFとか携帯で転送不可にするとか
『convert』で変換を起動させて使用。
※windows内だと日本語が文字化けすること有り
phpで使用する場合は、convertを、『exec()』か『system()』で使用する。
※exec()は、場合によっては動かない場合もある
『convert』とか『composite』とは書いてるけど、
コマンド登録(windowsの場合パスを通す)してないと、実行されない。
通してない場合は
/usr/local/bin/convert sample.jpg -geometry 70 output.jpg
みたいな感じで(パスはテキトーだからまんまパクれない)
インストールディレクトリ/convert
とすること。
以下、実行方法だけど、
実行結果もみるなら『kiyoeri - ImageMagickコマンド集』がオススメ
対応フォーマット一覧を取得
インストールが完了しているか確認するのにも使える。
$ convert -list format
縮小・拡大
縦横の比率は保持される
縮小
$ convert sample.jpg -geometry 70 output.jpg
拡大指定してるようで拡大しない
$ convert sample.jpg -geometry 150\> output.jpg
フォーマット変換
拡張子を変えて指定すれば、自動判別で変換。
$ convert sample.jpg output.gif
jpgからpngファイルを生成するときは、
『-colors 256』とか色指定をつけないとフルカラーpngになって重い
画像をひっつける
上下に結合しoutput.gif出力
$ convert -append fig01.gif fig02.gif output.gif
左右に結合しoutput.gif出力
$ convert +append fig01.gif fig02.gif output.gif
画像を重ねる
background.gifの上にover.gifを合成
『gravity』を付けることで合成位置を指定
$ composite over.gif background.gif output.gif
画像の切り出し
画像の中央を100x100で切り出す
$ convert sample.gif -gravity center -extent 100x100 output.gif
透過GIF化
transparent:RGB値
$ convert -transparent "#FFFFFF" sample.gif output.gif
上記の場合「白」が透過される
文字を入れる
font:フォントファイル(必須)
pointsize:文字の大きさ
draw:"text 縦位置,横位置 '挿入文字列'"
$ convert -font sample.ttf -pointsize 10 -draw "text 10,10 'abcde'" sample.gif output.gif
※windows環境で日本語を使うと文字化けすることがある
アニメーションGIF分解
『tmp.gif』を指定すると、tmp.gif.0、tmp.gif.1…と
『tmp_%d.gif』を指定すると、tmp_0.gif、tmp_1.gif…と
コマ数分、画像を分割してくれる。
単純分割
$ convert +adjoin tmp_%d.gif sample.gif
画像シーケンスをマージ分割
$ convert -coalesce tmp_%d.gif sample.gif
『画像シーケンスをマージ分割』の方がキレイに分割出来る。
アニメーションGIF作成
delay:画像が切り替わるまでの時間(指定される値/100秒)
loop:ループ数(なくてもOK。『-loop 0』なら永久ループ)
透過GIF結合ならば、背景が残る可能性があるので、『-dispose background』を付ける
結合する画像のサイズが違うなら『gravity』で位置をキッチリ指定した方がいい。
$ convert -loop 0 -dispose background -delay 30 -gravity west image*.gif output.gif
上記は、image01.gif~image30.gifがある想定。
『image[1-2].gif』という指定方法もある。
ドコモ、auのjpg, gifを転送禁止にする
元画像(以下の場合『sample.jpg』)が上書かれて、ファイルの属性が[644]になる。
一度どっかにコピー作った後、変換した方がいい。
$ mogrify -comment 'kddi_copyright=on,copy="NO"' sample.jpg
コメント