ImageMagick
画像のリサイズや合成等をサーバ上で行う場合はGDかこれが候補にあがる。
たいした事をしないのであればパフォーマンスでGD。GDの高機能版がImageMagickという感じのようで。
今回はImageMagickを利用する。
インストール
Ubuntuにインストールした。
sudo /usr/bin/apt-get install imagemagick sudo /usr/bin/apt-get install graphicsmagick-imagemagick-compat sudo /usr/bin/apt-get install php5-imagick
終了。
imagick.ini が作成されて、extension=imagick.soが既に記載されていた。
画像操作の前に
基本コマンド
リサイズ(以下はpx単位で記載。%の指定も可能)
// 縦横比自動調整でリサイズ(横×縦=200x150) // 200×146とかになったりする convert input.jpg -resize 200x150 output.jpg
// 縦横比無視して強制リサイズ // 絶対に200×150になる convert input.jpg -resize 200x150! output.jpg
// 縦横どちらかを決定してリサイズする // アスペクト比自動調整 convert input.jpg -resize 200x output.jpg // 横を固定 convert input.jpg -resize x150 output.jpg // 縦を固定
// 縮小だけして、拡大は無視する // 指定サイズ以上の画像はリサイズされ、指定サイズ以下の画像はそのまま。 convert input.jpg -resize 200x150\> output.jpg
// リサイズ(縮小)によるぼやけ防止(-unsharpオプション) // 画像を縮小した場合などは画像がぼやけてしまうので、シャープ処理が必要。 convert input.jpg -unsharp -resize 200x150 output.jpg /* * 指定方法 * -unsharp radius(x)sigma[+amount][+thresold] * radius : ガウシアンでの範囲(default:0) * sigma : ガウシアンの標準偏差(default:1.0) * amount : オリジナルとぼやけたイメージの差分をパーセントで示す(default:1.0) * thresold : 量子レンジの分数として定義(default:0.05) */
フォーマット変換
convert input.jpg output.png
複数画像からPDFの作成
convert input*.jpg output.pdf
回転
// 右回転の数値指定なので、左回転時はマイナスを指定する
convert -rotate 90 input.jpg output.jpg
画像の切り抜き
convert -crop <width>x<height>+<x_offset>+<y_offset> input.png output.png
// 中央から指定サイズ切り抜くなら
convert -gravity center -crop 100x100+0+0 input.png output.png
GIFアニメーションの作成
convert -delay 30 input*.png output.gif
輝度・彩度・色相(-modulateオプション)
convert input.jpg -modulate 110,130 output.jpg /* * 指定方法 * -modulate brightness[,saturation,hue] * brightness : 輝度(default:100%) * saturation : 彩度(default:100%) * hue : 色相(default:100%) */
そのほか
文字の合成などについてはそのうち追記しよう。