目次 前へ 次へ

4.4 JpGraph の基本概念と画像の生成

グラフを生成する共通のパターンは

  1. スクリプトを作成し、画像、形式、カラーなどを構成する。
  2. <IMG> タグを持つスクリプト (ラッパー スクリプト) を作成し、<IMG> タグを用いて HTML ページの適切な場所にグラフを設置する。

もちろん、生成した画像をブラウザで表示するために、画像生成スクリプトをブラウザから呼び出すこともできます。

また GET や POST などの HTTP パラメータを使用して、引数を画像スクリプトに手渡すことも可能です。 たとえば、

<img src="showgraph.php?a=1&b=2">

これにより、画像の見た目を制御したり、表示させる画像を変更したりすることができます。ただし、この方法で大量のデータを送信することは推奨しません。代わりに、データベースなどから大容量のデータを取得する方法があります。 大容量のデータをイメージ スクリプトに送るもうひとつの方法としては、イメージ スクリプトに POST リクエストを作成する方法があります。

注意:表示される画像はブラウザに強制的に更新させてください。ブラウザの中には、ユーザーが [更新] ボタン (多くの場合 F5) をクリックするまで、リクエストを送信しないものがあります。これが原因で、ユーザーには古い画像が表示されてしまうことがあります。これを回避するための簡単な方法は、スクリプトには影響しないダミーの日付を引数として追加することです。たとえば、
echo '<img src="myimagescript.php?dummy='.now().'">';
ブラウザの内部のキャッシュ機能を認識することも重要です。動的に生成された画像で最もよく起こる問題は、画像生成のスクリプト(ファイル)が同じものを表示してしまうことです。 これは、データが変更されていないとブラウザが認識してしまい、そして、キャッシュされたデータがあると、ファイルのタイムスタンプが同じ場合キャッシュされたデータを使用するので、新しい GET リクエストが送られることはありません。 

画像を生成するスクリプトは次のような構造になります。

// ...必要なスクリプトをincludeする部分

$graph = new Graph($width,$height,...);

// ...グラフの細部を設定する部分

$graph->Stroke();

JpGraph は完全にオブジェクト指向に基づいており、すべての呼び出しはクラスのインスタンスを用いて行われます。その基本クラスの 1 つとして、グラフすべての基となる Graph() クラスが挙げられます。

Graph() オブジェクトを作成したあとで、プログラム コードを追加