画像処理

PHPでは、簡単な図形から複雑な画像までテキストベースで描画する機能が備わっています。外部の画像ファイルを直接読み込んで Webブラウザに出力することも可能です。また、様々なテキストを読み込んで、画像に埋め込むこともできます。
この節では、簡単な画像を描画する関数とその使い方について解説します。詳しい関数については、関数リファレンスの イメージ関数 を参照してください。
PHPで扱える画像形式
PHPで利用できる代表的な画像形式は、GIFJPEGPNG の3つです。なお、生成できる画像形式は、GIF形式のみ PHPバージョン 1.6 以前でなければ扱うことができません。現在は 4.3 が主流になっていますので、GIF形式の画像を生成することができません。
この節では、ロイヤリティが必要ない PNG形式を中心に解説します。ただし、2004年6月以降になれば、GIF形式がロイヤリティ・フリーで利用できるようになりますので、新しいバージョン(近々 PHP5.0 のリリースが予定されている)では、利用できるのではないかと予想しています。
(追記:2004年3月に PHP5.0がリリースされました。)
画像を作る
PHPで画像を生成する場合、最初にレンダリングする画像の領域を設定します。また、利用する色などもあらかじめ設定し、その後、画像の形を指定します。
<?php
header("content-type: image/png");
$image = imagecreate(100,100);

$back = imagecolorallocate($image, 0, 0, 0);
$red = imagecolorallocate($image, 255, 0, 0)
imagepolygon( $image, array( 10, 80, 80,80, 80, 10 ), 3, $red );

  imagepng($image);
  imagedestroy($image);
?>
この PHP文書そのものが画像の扱いとなります。これをHTML文書から読み込むために、img要素を使います。
PHP文書から出力した画像を表示しています
左の画像は、上記のスクリプトを記述した外部 PHP文書を読み込ませてレンダリングしたものです。読み込みには、説明したとおり、img要素を使いました。
イメージ関数
上記スクリプトでは、画像の生成に関数を利用しています。
画像の描画領域は imagecreate()関数使い、横幅と高さを指定します。描画する色の指定には imagecolorallocate()関数で10進数の指定で行い、そして三角形のような多角形を結ぶ線を生成するために imagepolygon()関数を使っています。
生成された PNG画像を Webブラウザに出力させるためには、imagepng()関数を使い、その引数に画像リソースを指定します。また、閲覧者のメモリから画像リソースを解放するために、imagdestroy()関数を利用します。
こうしたイメージ関数を巧みに使うことで、より複雑でしかも容量の軽い画像を作成することができます。
ただし、イメージ関数を利用する際には、あらかじめ利用する PHPGD (グラフィック用バイナリライブラリ) をインストールしておく必要があります。現在はバージョン2がリリースされており、オープン・ソース・ソフトウェアのため、誰でも自由にダウンロードして使うことができます。
なお、Windows版では、ZIP形式からインストールした PHP4.3に、あらかじめ GD2が含まれています。インストーラー形式の PHP4.3では搭載されていない場合がありますので注意してください。
http://www.boutell.com/gd/  最新GDライブラリの入手先


This Page is HTML4.01 Valid! 最新更新日 2004年2月8日   最新更新日 2004年4月1日
Copyright(C) 2002〜2004 banban@scollabo.com