目次 前へ 次へ

4.2 画像を出力するには

画像を生成する PHP スクリプトは、通常 HTML の <IMG> タグで指定する必要があります。 たとえば、以下の HTML では PHP スクリプト fig1.php が生成する画像を取り込んでいます。

<img src="fig1.php" border=0 align=center width=300 height=200>

"align"、 "width"、"height"は明示する必要はありませんが、指定すると画像が完全にブラウザに送られる前に、画像を正確な位置に配置するようになります。

JpGraph ライブラリは、PNG、GIF、JPEG などの画像形式を正確に判別できるように、必要なヘッダー情報と画像データを自動的に生成し、ブラウザに送信します。その後ブラウザは画像をデコードします。

ただし、画像出力用のスクリプトでは、画像以外の形式を返すことができないことに注意してください。 HTML ページ(正確に言えば HTTP ストリーム)は、特定のストリームのヘッダ情報によって定義される1つのマイム タイプだけで成り立ちます。

よくある間違いとして、画像生成用スクリプトの先頭行に空白文字が入っていることがあります。 この場合明確なヘッダを受け取っていないので、ブラウザはスクリプトから出力されているデータをテキストデータと認識してしまいます。 こうして画像のヘッダ部分がブラウザに送られると、ブラウザはすでに送られてきているデータ ストリームがテキスト ストリームだと認識し、警告を出します。 これがあの忌まわしい "Headers already sent error" の原因です。

HTML内で画像を複数個表示したい場合は、その数だけの <IMG> タグを用意し、それぞれ画像生成のスクリプトをGETやPOSTデータなどと共に指定する必要があります。


目次 前へ 次へ