- 2008-08-26 (火) 22:59
- php
さて、前回ImageMagickのPECL拡張モジュールimagick.soをインストールしたので、これを使ってPHPによる画像変換プログラムを構築してみる。
画像変換といっても色々あるので、どんな機能が欲しいかあげてみる。
- サイズ(大きさ)の変更
- サイズ(容量)の変更
- 形式の変更
- URLから画像を抽出して変換⇒出力
機能は腐るほどあるみたいだけど、とりあえずこのあたりができればいいや。
んじゃ、こんな感じのURLを想定して考えてみる。
xxx.php?url=[取得する画像URL]&w=[width]&h=[height]&type=[形式(jpg,png,gifのどれか)]&q=[画像の圧縮率]
書いたコードはこんな感じ
$url=$_GET['url'];
$type=$_GET['type'];
$w=$_GET['w'];
$h=$_GET['h'];
$q=$_GET['q'];
/*ほんとはここでGETで受け取った値のValidationとかをする*/
$image = new Imagick();
$image -> readImageBlob(file_get_contents($url));
$image -> setImageFormat($type);
$image -> thumbnailImage($w,$h);
$image -> setCompressionQuality($q);
header('Content-type: image/'.$type);
echo $image;
こんな感じでとりあえずは動いたっと。
widthとheightは片方を0にしておくと等倍にサイズ変換してくれる。
あと、gifとpngは圧縮率が非常によろしくないので、基本はjpgに変換して画質を下げる方向(q=50で結構小さくなる)で行くのがいいかな。
関連記事
この記事を書いているsayjiroはフリーランスとして活動しています。
お仕事も絶賛大募集中です!お気軽にご連絡ください。
→SJ6works
コメント:0
トラックバック:0
- この記事のトラックバックURL
- http://sj6.org/coding_by_php_for_imagemagick/trackback/



