PHPができることは、HTML出力を生成することだけではありません。PHP は、多くの異なるイメージ形式でイメージファイルを作成したり、操作 したりすることもできます。このイメージ形式には、gif, png, jpg, wbmp, xpmが含まれます。さらに便利なことに、PHPはイメージストリー ムを直接ブラウザに出力することができます。 これを動作されるには、イメージ関数のGDライブラリを指定してPHPをコ ンパイル必要があります。使用したいイメージ形式によっては、GDとPHP は他のライブラリも必要とする可能性があります。
PHPのイメージ関数により JPEG、GIF、 PNG、SWF、 TIFF、JPEG2000イメージの 大きさを知ることができます。
exif 拡張モジュール を使用すると、 JPEG や TIFF 画像のヘッダに保存された情報を扱うことができます。 これにより、デジタルカメラが作成したメタデータを読み込むことができます。 exif 関数は GD ライブラリを必要としません。
注意: イメージの読み込み、書き込み、修正の機能を拡張するには、 要求の節を呼んでください。 デジタルカメラで撮影した画像のメタデータを読み込むには、 上で説明した exif 拡張モジュール が必要です。
GDライブラリ( http://www.libgd.org/で取得可能)があれば、画像の作成と操 作を行なうこともできます。
操作できるイメージの形式は、インストールされている GDとこれらのイメージフォーマットにアクセスする ためにGDが必要とするその他のライブラリに依存し ます。gd-1.6より前のバージョンのgdは、GIFイメージ画像をサポートし ていますが、PNGはサポートしていません。一方、gd-1.6以降でgd-2.0.28未満の バージョンはPNGをサポートし、GIFはサポートしていません。 GIFサポートは、gd-2.0.28で再度有効になりました。
注意: PHP 4.3以降、GD libの付属版が付属しています。この付属版にはαブ レンディングのようないくつかの機能が追加されています。 この版のコードは、より管理が行き届き、安定しているため、 外部ライブラリの代わりに使用されるべきです。
注意: PHP 6.0.0 では GD 1.x はサポートされなくなりました。 GD 2.0.33 以降が必要となります。
より多くのイメージ形式を処理するために GD を拡張したいと思うかもしれません。
表 1. サポートされるイメージ形式
イメージ形式 | ダウンロードするライブラリ | 注記 |
---|---|---|
gif | gd-1.6より以前またはgd-2.0.28以降のバージョンのGDでのみサポートされます。 読み込みのみのGIFサポートは、PHP 4.3.0 とバンドルされたGDライブラリの組合せで利用可能です。 書き込みのサポートは、PHP 4.3.9および PHP 5.0.1以降で利用可能です。 | |
jpeg-6b | ftp://ftp.uu.net/graphics/jpeg/ |
(PHP のビルド前に) jpeg-v6b ライブラリをビルドする際、configure で
--enable-shared
オプションを指定する必要があります。
そうしないと、PHP をビルドする際の configure で
libjpeg.(a|so) not found というエラーが発生します。
|
png | http://www.libpng.org/pub/png/libpng.html | gd-1.6以降のバージョンのGDでのみサポートされます。 |
xpm | ftp://metalab.unc.edu/pub/Linux/libs/X/!INDEX.html | Xウインドウ環境をインストールしている場合、 このライブラリを既に利用可能と思われます。 |
別の種類のフォントを処理できるようにGDを拡張したいと思うかもしれ ません。以下にサポートされるフォントライブラリを示します。
表 2. サポートされるフォントライブラリ
フォントライブラリ | ダウンロード | 注記 |
---|---|---|
FreeType 1.x | http://www.freetype.org/ | PHP 6.0.0 でサポートされなくなりました。 |
FreeType 2 | http://www.freetype.org/ | |
T1lib | ftp://sunsite.unc.edu/pub/Linux/libs/graphics/) | Postscript Type 1 フォントをサポートします。 |
PHPでGDサポートを有効にするには、configure に--with-gd[=DIR]
を指定します。ただし、DIRは
GDのベースインストールディレクトリです。
PHPにバンドルされている推奨のGDライブラリを使用するには
--with-gd
を指定します。
GD ライブラリをコンパイルするには、libpng と
libjpeg が必要です。
Windowsの場合、GD2 DLL php_gd2.dllをphp.iniに エクステンションとして指定してください。 GD1 DLL php_gd.dllはPHP4.3.2で削除されました。 imagecreatetruecolor()のようにTrueカラーが優先される関数 についてはGD2が必須です。
PHP3においてGDサポートを無効にするには
--without-gd
を指定してください。
より多くの画像フォーマットを扱えるようにGDの能力を高めるには、 --with-XXXXのような形のオプションを指定します。
表 3. サポートされる画像フォーマット
画像フォーマット | configure オプション |
---|---|
jpeg-6b |
jpeg-6b をサポートするには
--with-jpeg-dir=DIR
を指定します。
|
png |
PNGをサポートするには--with-png-dir=DIR
を指定します。ただし、libpngはzlibライブラリを
必要とするため、--with-zlib-dir[=DIR]
もconfigureオプションに追加する必要があります。
|
xpm |
XPMをサポートするには--with-xpm-dir=DIR
を指定します。必要なライブラリをconfigureが見つけられなかった場合は
X11ライブラリのパスを追加してください。
|
注意: libpng と共に PHP をコンパイルする際、GD ライブラリとリンクされる同じバージョンを使用する必要があります。
GDがより多くのフォントを扱えるようにするには --with-XXXXのような形のオプションを指定します。
表 4. サポートされるフォントライブラリ
フォントライブラリ | configure オプション |
---|---|
FreeType 1.x |
FreeType 1.x をサポートするには
--with-ttf[=DIR] を指定します。
|
FreeType 2 |
FreeType 2 をサポートするには
--with-freetype-dir=DIR を指定します。
|
T1lib |
T1lib (Postscript Type 1 フォント) をサポートするには
--with-t1lib[=DIR] を指定します。
|
ネイティブ TrueType 文字列関数 |
ネイティブな TrueType 文字列関数 をサポートするには
--enable-gd-native-ttf を指定します。
|
php.ini の設定により動作が変化します。
PHP_INI_* 定数の詳細および定義については 付録I を参照してください。
以下に設定ディレクティブに関する 簡単な説明を示します。
gd.jpeg_ignore_warning
booljpeg2wbmp() や imagecreatefromjpeg() が出す警告を無視します。
exif の設定ディレクティブも参照ください。
警告 |
イメージ関数は非常にメモリを消費します。 memory_limit を十分大きな値にしておくようにしましょう。 |
この拡張モジュールでは、画像 ID および フォント ID の二種類のリソースを定義しています。
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。