jpgraph自体が提供する例の1つであるこのスクリプトを使用しています。これを単独で Web ページ (空白) に配置すると、グラフが描画されます。しかし、既存の Web ページ (一部のコンテンツを含む) にコードを埋め込むと、グラフが描画されません。
GD は、phpinfo() に従って既に有効になっています。jpgraph 3.5.0b1 を使用しています。
問題は、HTML/テキスト出力と画像出力を混在させていることです。
PHP スクリプトでグラフィック コンテンツを生成する場合は常に、通常の HTML やテキストとは異なる方法で出力を処理する必要があります。
ルートはいくつかありますが、ここでは簡単に説明します。
出力をファイルに保存し、そのファイル名を HTML で使用します
//replace this line:
// Display the graph
//$graph->Stroke();
// with these lines:
// Default is PNG so use ".png" as suffix
$fileName = "/tmp/imagefile.png";
$graph->img->Stream($fileName);
..次に、次$filename
のようにイメージタグで使用します(例):
print '<img src="'.$filename.'" />';
グラフィックを出力するスタンドアロンの PHP スクリプトを作成します。
という名前のファイルで、サンプル スクリプトをそのまま使用できますgraph_render_script.php
。次に、HTML で、そのスクリプトをソースとして使用します。
<img src="graph_render_script.php" />
base-64 でエンコードされたデータを出力する
もう 1 つの方法は、base-64 でエンコードされた画像データを使用することです。これを行うのは比較的簡単です。
print '<img src="data:image/png;base64,'.base64_encode($graph->Stroke()).'" />';
いつものように、ドキュメンテーションはガイドになるはずです!
ドキュメンテーション
これは私のために働いた:
画像を生成するphpコードをファイルに入れます...次に、htmlページでこれを行います:
<img src="graph.php" >
グラフをインラインで埋め込むことは実際に可能です。出力バッファリングを使用して画像データをキャプチャし、そのデータを base64 でエンコードしてから、その base64 でエンコードされた文字列を のソースとして使用する必要があります<img>
。
次のようなことを試してください:
$img = $graph->Stroke(_IMG_HANDLER);
ob_start();
imagepng($img);
$imageData = ob_get_contents();
ob_end_clean();
?><html>
<head>
<title>JpGraph Inline Image Example</title>
</head>
<body>
<h1>JpGraph Inline Image Example</h1>
<img src="data:image/png;base64,<?php echo(base64_encode($imageData)); ?>" />
</body>
</html>
ceejayoz は、この方法があなたの望むものになることはほとんどないという点で優れた点を指摘しました。このように画像データを埋め込むことは、正当な理由がなく、欠点を理解していない限り、お勧めしません。つまり、古いブラウザではサポートされておらず、ページ サイズが劇的に増加します (画像データだけでなく、画像データはbase64でエンコードされているため、長さが膨らみます)。私は昨年のプロジェクトでこの方法を現場で使用しましたが、クライアントが画像の 2 回目の要求を拒否したためだけでした。
しかし、既存の Web ページ (一部のコンテンツを含む) にコードを埋め込むと、グラフが描画されません。
それはできません。画像をページ内の生のバイナリ データとして出力することはできません。
グラフを生成するコードを別のファイルに配置し、イメージ タグを使用する必要があります。
<img src="path/to/jpgraph/chart.php" />
グラフは独自のページにある必要があり、埋め込むことはできません。生の JPG を出力し、他のコンテンツを送信する必要はなく、ブラウザーに JPG であることを伝える適切なヘッダーが必要です。グラフを埋め込むには、たとえば stats.php という別のページを作成し、そのページでスタンドアロン グラフを指すイメージ タグを作成します。
<img src=graph.php>