ImageMagicメモ

コマンドラインから『画像のサイズ変換』『フォーマット変換』などを行うソフトというかツールというか。

動的に画像変換処理が必要なサイトは、
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

コメント

タイトルとURLをコピーしました