ホームページ >php教程 >php手册 >jpgraph 中国語ユーザーマニュアル: jpgraph を使用して画像を生成する概念の紹介

jpgraph 中国語ユーザーマニュアル: jpgraph を使用して画像を生成する概念の紹介

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-21 08:53:451982ブラウズ

php jpgraph のインストールと設定チュートリアルと最初の jpgraph サンプルチュートリアルを紹介した後、jpgraph をより良く使用するには、考えを整理し、php jpgraph を使用して画像コードを作成および生成するときに通常どのような手順が必要かを理解する必要があります。コマンドラインを使用してイメージを生成することはできますか? HTML タグはどのように画像生成スクリプトを呼び出すのでしょうか?画像をファイルに書き込むにはどうすればよいですか?このチュートリアルではこれらの質問に答えます。 PHP に精通している場合でも、このチュートリアルをざっと読んで概念を理解することを強くお勧めします。

コマンドラインを使用して動的イメージを生成します

jpgraph クラス ライブラリは、PHP コマンド ラインを直接使用して画像を生成できます。これは、ブラウザが画像を生成する方法と同じように機能します。生成される画像データはバイナリです。

この方法は、Web サイトが一定時間内に画像を効率的かつ自動的に作成する場合に効果的な方法です。これにより、訪問者がサイトにアクセスするたびに画像を再生成することでサーバーに負担がかかることがなくなります。

PHP コマンドラインのバージョンが cli バージョンであることを確認する必要があります。 CGI/ISAPI バージョンの PHP を使用すると、HTTP ヘッダーが生成されるため機能しません。

jpgraph の使用上のヒント: CGI バージョンを使用している場合は、-q オプションを追加することで HTTP ヘッダーの生成を抑制できます。推奨: PHP コマンドラインパラメータの使用法と説明チュートリアル

コマンドラインモードでは

を渡すことができます

1

php --version

1

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

通常の HTTP GET/POST メソッドを通じてパラメータをイメージ プログラムに渡すことができることに注意してください。たとえば

このコードは、画像の外観を制御したり、画像内の表示される場所にデータを渡したりするために使用できます。これは、グラフ作成用のデータを送信する最適な方法ではない可能性があることに注意してください。大量のデータを必要とする画像の場合は、画像スクリプトが必要とするすべてのデータをデータベースから取得することでこれを行うことができます

jpgraph を使用してグラフィックスを作成するための標準的な手順の詳細な説明

php jpgraph クラス ライブラリを使用して PHP グラフィックス スクリプトを作成する準備ができたら、通常は次の手順を実行します

1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19


// 包含必要的类库文件
require_once 'jpgraph.php';
require_once '....';

// 创建Graph类实例
$graph = new Graph($width,$height, ...);

// 设定尺度类型
$graph->SetScale('...');
 
// 构建图形的细节和图形模型对象
 
// 将一个或多个图形模型对象添加到图形上
$graph->Add(..);
 
// 将图形送至游览器显示
$graph->Stroke();
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/>15
16
17
18
19


// 必要なクラス ライブラリ ファイルが含まれています
require_once 'jpgraph.php';
require_once '....';

//グラフ クラス インスタンスを作成する
$graph = 新しいグラフ($width, $height, ...);

//スケールの種類を設定します
$graph->SetScale ('...');

// グラフィックスおよびグラフィックス モデル オブジェクトの構築の詳細

// 1 つ以上のグラフィックス モデル オブジェクトをグラフィックスに追加します
$graph->追加 (..);

//グラフィックをブラウザに送信して表示します
$graph->ストローク ();
?>

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')

すべての画像を JPG エンコード形式で生成したい場合は、それを に変更する必要があります。
1

DEFINE('DEFAULT_GFORMAT','jpg')

2. 主に Image::SetImgFormat() メソッドを呼び出して、圧縮する形式をスクリプト内で動的に選択します。たとえば、JPEG 形式を使用して画像をブラウザに送信する場合

1
2
3


$graph->img->SetImgFormat('jpeg')
?>

1
2
3


$graph->img ->SetImgFormat('jpeg')
?>

ほとんどすべてのグラフ作成プログラム、最後の行は $graph->Stroke();

この行により、実際のチャートの作成が始まります。この段階までのメソッド呼び出しはすべて、クラス ライブラリ シーンをセットアップし、必要なパラメータをすべて指定しました (Photoshop シーンに似ています)。 Stroke() メソッドを呼び出すと、イメージの構築が開始されます。画像生成時にエラーが見つからなかった場合、原則として以下の手順に従います

1. メモリ内にイメージの作成を開始します。これは、指定されたパラメータと提供されたデータを分析して、指定されたさまざまなグラフィック モードを作成することによって行われます。

2. グラフィックスに使用されている画像圧縮形式など、送信する必要があるヘッダーを確認し、ヘッダーをクライアントに送信します。

3. 実際の画像データをクライアントに送信

画像はファイルの説明に直接書き込まれます

画像ファイルをブラウザにストリーミングするだけでなく、名前付きファイルに画像を直接書き込むこともできます。ファイル名はパラメータとして Graph::Stroke() メソッドに渡す必要があります。つまり、

1
2
3


$graph->Stroke('/tmp/myimage.png');
?>

1
2
3


$graph->ストローク ('/tmp/myimage.png');
?>

注意点は3つあります

1. PHP プログラムには、ファイルを書き込もうとしているディレクトリに対する書き込み権限が必要です。ブラウザ経由で PHP を実行する場合。つまり、HTTP サーバーにはそのディレクトリへの書き込み権限が必要です。

2. ファイル拡張子は、指定された画像圧縮形式と一致する必要があります。

3. 画像がブラウザに送信されずにファイルに直接転送された場合、スクリプトは通常のテキストを返すことができます。

画像をファイルに書き込んでブラウザに返す例

この jpgraph インスタンスでは、通常、代わりに jpgraph クラス ライブラリ バージョン 2.5 の Graph::StrokeStore($aFileName) メソッドを使用する必要があります。以前のバージョンを使用していて、さまざまな理由でアップグレードできない場合は、次のトリックを使用してこれを実現できます。これは、_IMG_HANDLER オプションを使用して、Graph::Stroke() メソッドにイメージ ハンドル (ハンドラー) を強制的に返すことです。そしてやめてください。次に人間は、まず選択したファイルに画像を送信し、次にクラス ライブラリの内部メソッドを使用してそのファイルをブラウザにストリーミングします。それが

です

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18


//包含必要的类库文件

$graph = new Graph(400,300);

// 编写生成图片的代码

// 通过_IMG_HANDLER参数阻止图片送至游览器
$gdImgHandler = $graph->Stroke(_IMG_HANDLER);
 
// 默认的图片文件格式为PNG,并将图片传输至指定的文件中
$fileName = "/tmp/imagefile.png";
$graph->img->Stream($fileName);
 
//然后将图片送至游览器
$graph->img->Headers();
$graph->img->Stream();
?>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/>15
16
17
18


//必要なクラス ライブラリ ファイルが含まれています

$graph = 新しいグラフ(400,< /span>300);

// 画像を生成するコードを記述します

// _IMG_HANDLER パラメータを介して画像がブラウザに送信されないようにします
$gdImgHandler = $graph->ストローク (_IMG_HANDLER);

//デフォルトの画像ファイル形式は PNG であり、画像は指定されたファイルに転送されます
$ファイル名 = "/tmp/imagefile.png";
$graph->img ->ストリーム($fileName);

//画像をブラウザに送信します
$graph->img ->ヘッダー();
$graph->img ->ストリーム();
?>

ストローク機能に関する特別な指示

ファイル名パラメータに加えて、この関数で使用できる 2 つの事前定義パラメータがあります

_IMG_AUTO

: スクリプトと同じ名前のファイルがスクリプト ディレクトリに作成され、拡張子は設定されたイメージ拡張子になります。

_IMG_HANDLER

: 画像を作成したりブラウザに返したりせずに、このファイル名を指定します。代わりに、Stroke() メソッドから GD ハンドルを返すだけです。これは、jpgraph ライブラリがサポートされていない場所で後で画像を操作する場合に便利です。たとえば、動的に生成された PDF ファイルに画像を含めます。

ブラウザに画像を強制的に更新する方法

一部のブラウザでは、ユーザーが更新しない限り、HTTP サーバーにリクエストを返さない場合があります。スクリプト ファイルのタイムスタンプは変更されないため、ユーザーには古いデータが表示され続ける可能性があります。

1

を渡すことができます。 tr>
1

実装では、これはブラウザのキャッシュの問題によっても発生するため、この方法を使用してブラウザに画像を強制的に更新することもできます。

生成された画像の印刷問題に関する説明

一部のブラウザ (特に IE) には、動的な画像の印刷に問題があります。これは、IE の設計者は、すべての画像が従来の静的な画像ファイルの画像であり、動的に生成されず、印刷に何らかの影響を与えると想定しているためです。

1. IE は通常、印刷の準備時にページを再取得します。これは、新しい画像が生成されることを意味し、データが急速に変化すると、ユーザーは画像が異なると感じる可能性があります。

2. 一部の古いバージョンの IE ブラウザでは、動的画像がまったく印刷されません。唯一の方法は、静的画像を使用することです。

最後の質問に注意する必要があります。通常、ほとんどのブラウザは、画像を右クリックしてローカルにダウンロードすることをサポートしています。ただし、動的画像の場合、一部の古いバージョンの IE では、PNG 画像をダウンロードして BMP ファイルとして保存しようとするなど、非常に混乱する可能性があります。

もちろん、IE ブラウザの新しいバージョンは動的画像を非常にうまく処理できるようです。

OK、jpgraph を使用して画像を生成する詳細な手順と、コマンド ラインを使用して画像を生成する方法、jpgraph を使用して生成された画像をファイルに書き込む方法、HTML タグを使用して jpgraph を呼び出す方法についてのチュートリアルです。スクリプトが完成しました。

注意: PHP Web サイト開発チュートリアル-leapsoul.cn 転載の際は、元のソースとこの記述をリンクの形で明記してください。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。