第9章 画像
教科書「プログラミングPHP 第2版」
上級試験は、オライリーから出版されているプログラミングPHP 第2版を教科書に出題されます。
基礎
- HTTP レスポンスは単一のデータ形式のみを含む
- 個々の画像毎に HTTP のリクエスト/レスポンスが発生
- img src="image1.php" のようにすれば、画像を生成する PHP スクリプトを実行して表示する
- img src="image1.php?num=1" のように GET パラメータ付与も可
GD ライブラリ
- 画像を生成する拡張モジュール
- PHP4.3 以降で同梱
- phpinfo で確認しておく
- GD1.x は256色(8ビット)、GD2.x はフルカラー
画像の性質
- 画像は小さな矩形の集まり。各矩形は赤青緑の3色からなり、それぞれの色の強さが0から255
- 画像ファイルフォーマットによってデータ圧縮の仕方が異なる
- 透過度は、背景をどの程度表示するか
- アンチエイリアスは、境界部分の表示を調節するか
画像を生成する
- ImageCreate(幅,高さ)で画像サイズを決める
- ImageColorAllocate(画像,赤,緑,青)で色を指定
- 塗りつぶし矩形を描くにはImageFilledRectangle
- ImageJPEG, ImagePNG, ImageWBMP等をつかって画像を作成
- 画像を作成するときは、ファイル名を指定するか、(ファイル名未指定で)ブラウザ出力する
- JPEG は画像の質を0から10で指定する
- HTTP ヘッダは、画像出力の直前にする(そうしないと、エラーメッセージをブラウザが画像情報と判断する)
- 画像フォーマットを変更するときは、HTTP ヘッダと画像生成関数を変更する
- サポートされている画像フォーマットを確認する ImageTypes。IMG_GIF, IMG_JPG, IMG_PNG, IMG_WBMP, IMG_XPM
- 画像ファイルを読み込む ImageCreateFromJPEG, ImageCreateFromPNG
画像を描く関数
- 点を描く ImageSetPixel
- 線を引く ImageLine, ImageDashedLine
- 矩形を描く ImageRectangle, ImageFilledRectangle
- 多角形を描く ImagePolygon, ImageFilledPolygon
- 弧(楕円の一部)を描く ImageArc
- 図形を回転する Imagerotate
画像内に文字
- ImageString(画像,フォント,x座標,y座標,表示する文字列,文字色)
- ImageTTFText(画像,サイズ,アングル,x座標,y座標,文字色,フォント,表示する文字列)
- ImageTTFTextは左下の位置を指定、ImageStringは右上の位置を指定
動的に生成する
- ボタン画像に文字を重ねる。ImageTTFBBox で画像サイズを取得し、それに合わせて文字列を表示する
- 単純なキャッシュ方法: filesize で画像サイズを調べることで、既にファイルが存在するかどうかを調べる
- Apache の設定でリダイレクトさせる方法もある
※原書を元にしています。日本語訳本とは用語等が異なる可能性があります。
Copyright (C) 2003-2018. PHP で WEB 作成 All rights reserved.