php jpgraph のインストールと設定チュートリアルと最初の jpgraph サンプルチュートリアルを紹介した後、jpgraph をより良く使用するには、考えを整理し、php jpgraph を使用して画像コードを作成および生成するときに通常どのような手順が必要かを理解する必要があります。コマンドラインを使用してイメージを生成することはできますか? HTML タグはどのように画像生成スクリプトを呼び出すのでしょうか?画像をファイルに書き込むにはどうすればよいですか?このチュートリアルではこれらの質問に答えます。 PHP に精通している場合でも、このチュートリアルをざっと読んで概念を理解することを強くお勧めします。
コマンドラインを使用して動的イメージを生成します
jpgraph クラス ライブラリは、PHP コマンド ラインを直接使用して画像を生成できます。これは、ブラウザが画像を生成する方法と同じように機能します。生成される画像データはバイナリです。
この方法は、Web サイトが一定時間内に画像を効率的かつ自動的に作成する場合に効果的な方法です。これにより、訪問者がサイトにアクセスするたびに画像を再生成することでサーバーに負担がかかることがなくなります。
PHP コマンドラインのバージョンが cli バージョンであることを確認する必要があります。 CGI/ISAPI バージョンの PHP を使用すると、HTTP ヘッダーが生成されるため機能しません。
jpgraph の使用上のヒント: CGI バージョンを使用している場合は、-q オプションを追加することで HTTP ヘッダーの生成を抑制できます。推奨: PHP コマンドラインパラメータの使用法と説明チュートリアル
コマンドラインモードでは
を渡すことができます
|
php --version |
コマンドを使用して、PHP コマンドラインのバージョンが cli であるかどうかを確認します。次に、
1 |
php myimage.php > image.png |
1 |
php myimage.php > image.png |
jpgraph クラス ライブラリを使用して画像を生成する方法
WEB ページで画像を作成および使用するための一般的な手順は次のとおりです。
1. 以下をカバーするスクリプトを作成します: データを取得し、画像の構築方法、グラフの大きさ、使用する色とフォントを指定し、他のものでグラフを拡張することによって
2. グラフィックを表示する HTML ページに、PHP 画像プログラムに接続するための 1 つ以上の img タグを追加する必要があります。もちろん、これらの画像プログラムをブラウザ上で直接呼び出して表示することも可能です。 img タグを使用すると、Web ページに任意の数の画像を含めることができます。
1 |
1 |
2 3 4 5 6 7 8 9 10 11 12 13 14 />15 16 17 18 19 |
|
jpgraph は完全にオブジェクト指向であるため、すべての呼び出しはクラスの特定のインスタンスに対して行われます。基本クラスは Graph で、グラフ全体を表します。
Graph オブジェクトを作成した後、グラフの詳細を構築するためにすべてのコードが追加されます。スクリプトで呼び出される最後のメソッド Graph::Stroke() は、構築されたグラフをブラウザに送信します。チャートが CSIM をサポートしている場合、このメソッドを Graph::StrokeCSIM()
に変更する必要があります。これらの標準的な使用法に加えて、
を選択することもできます。1. チャートをファイルに直接送信します。これは、呼び出される Stroke() メソッドにパラメータとして渡されるファイル名を指定することで実行されます
2. GD 画像処理プログラムにアクセスします
3. 内蔵のキャッシュ システムを使用して、以前に生成した画像を送信します。注: キャッシュ システムはデフォルトでは無効になっています。キャッシュ システムを有効にするには、jpg-config.inc で適切な設定を行う必要があります。
4. MGraph() クラスを使用して、同じ画像内の複数のグラフィックを結合します。
jpgraph画像圧縮形式の選択jpgraph クラスライブラリはデフォルトで PNG、JPEG、GIF の順に画像形式を自動選択します。どちらが利用できるかは、jpgraph ライブラリがインストールされているシステムによって異なります。
画像形式を変更するには 2 つの方法があります
1. jpgraph 構成ファイル jpg-config.inc.php で定義されているデフォルトの画像形式、つまり
1 |
DEFINE('DEFAULT_GFORMAT','auto') |
1 |
DEFINE('DEFAULT_GFORMAT','auto') |
1 |
DEFINE('DEFAULT_GFORMAT','jpg') |
1 |
DEFINE('DEFAULT_GFORMAT','jpg') |
2. 主に Image::SetImgFormat() メソッドを呼び出して、圧縮する形式をスクリプト内で動的に選択します。たとえば、JPEG 形式を使用して画像をブラウザに送信する場合
2 3 |
|
ほとんどすべてのグラフ作成プログラム、最後の行は $graph->Stroke();
この行により、実際のチャートの作成が始まります。この段階までのメソッド呼び出しはすべて、クラス ライブラリ シーンをセットアップし、必要なパラメータをすべて指定しました (Photoshop シーンに似ています)。 Stroke() メソッドを呼び出すと、イメージの構築が開始されます。画像生成時にエラーが見つからなかった場合、原則として以下の手順に従います
1. メモリ内にイメージの作成を開始します。これは、指定されたパラメータと提供されたデータを分析して、指定されたさまざまなグラフィック モードを作成することによって行われます。
2. グラフィックスに使用されている画像圧縮形式など、送信する必要があるヘッダーを確認し、ヘッダーをクライアントに送信します。
3. 実際の画像データをクライアントに送信
画像はファイルの説明に直接書き込まれます画像ファイルをブラウザにストリーミングするだけでなく、名前付きファイルに画像を直接書き込むこともできます。ファイル名はパラメータとして Graph::Stroke() メソッドに渡す必要があります。つまり、
1 |
|
1 2 3 |
|
注意点は3つあります
1. PHP プログラムには、ファイルを書き込もうとしているディレクトリに対する書き込み権限が必要です。ブラウザ経由で PHP を実行する場合。つまり、HTTP サーバーにはそのディレクトリへの書き込み権限が必要です。
2. ファイル拡張子は、指定された画像圧縮形式と一致する必要があります。
3. 画像がブラウザに送信されずにファイルに直接転送された場合、スクリプトは通常のテキストを返すことができます。
画像をファイルに書き込んでブラウザに返す例
この jpgraph インスタンスでは、通常、代わりに jpgraph クラス ライブラリ バージョン 2.5 の Graph::StrokeStore($aFileName) メソッドを使用する必要があります。以前のバージョンを使用していて、さまざまな理由でアップグレードできない場合は、次のトリックを使用してこれを実現できます。これは、_IMG_HANDLER オプションを使用して、Graph::Stroke() メソッドにイメージ ハンドル (ハンドラー) を強制的に返すことです。そしてやめてください。次に人間は、まず選択したファイルに画像を送信し、次にクラス ライブラリの内部メソッドを使用してそのファイルをブラウザにストリーミングします。それが
です
2 3 4 5 6 7 8 9 10 11 12 13 14 />15 16 17 18 |
|
ファイル名パラメータに加えて、この関数で使用できる 2 つの事前定義パラメータがあります
_IMG_AUTO: スクリプトと同じ名前のファイルがスクリプト ディレクトリに作成され、拡張子は設定されたイメージ拡張子になります。
_IMG_HANDLER: 画像を作成したりブラウザに返したりせずに、このファイル名を指定します。代わりに、Stroke() メソッドから GD ハンドルを返すだけです。これは、jpgraph ライブラリがサポートされていない場所で後で画像を操作する場合に便利です。たとえば、動的に生成された PDF ファイルに画像を含めます。
ブラウザに画像を強制的に更新する方法一部のブラウザでは、ユーザーが更新しない限り、HTTP サーバーにリクエストを返さない場合があります。スクリプト ファイルのタイムスタンプは変更されないため、ユーザーには古いデータが表示され続ける可能性があります。
1 |
1 |
実装では、これはブラウザのキャッシュの問題によっても発生するため、この方法を使用してブラウザに画像を強制的に更新することもできます。
生成された画像の印刷問題に関する説明
一部のブラウザ (特に IE) には、動的な画像の印刷に問題があります。これは、IE の設計者は、すべての画像が従来の静的な画像ファイルの画像であり、動的に生成されず、印刷に何らかの影響を与えると想定しているためです。
1. IE は通常、印刷の準備時にページを再取得します。これは、新しい画像が生成されることを意味し、データが急速に変化すると、ユーザーは画像が異なると感じる可能性があります。
2. 一部の古いバージョンの IE ブラウザでは、動的画像がまったく印刷されません。唯一の方法は、静的画像を使用することです。
最後の質問に注意する必要があります。通常、ほとんどのブラウザは、画像を右クリックしてローカルにダウンロードすることをサポートしています。ただし、動的画像の場合、一部の古いバージョンの IE では、PNG 画像をダウンロードして BMP ファイルとして保存しようとするなど、非常に混乱する可能性があります。
もちろん、IE ブラウザの新しいバージョンは動的画像を非常にうまく処理できるようです。
OK、jpgraph を使用して画像を生成する詳細な手順と、コマンド ラインを使用して画像を生成する方法、jpgraph を使用して生成された画像をファイルに書き込む方法、HTML タグを使用して jpgraph を呼び出す方法についてのチュートリアルです。スクリプトが完成しました。
注意: PHP Web サイト開発チュートリアル-leapsoul.cn 転載の際は、元のソースとこの記述をリンクの形で明記してください。