3

pchartHTMLページの特定の場所でを取得するにはどうすればよいですか?今、例に従って使用すると

$myPicture->autoOutput();

ページ全体を上書きし、グラフを表示するだけです。

関連する関数pChart内で見つけたソースを見るpImage.class.php

   function stroke()
    {
     if ( $this->TransparentBackground ) { imagealphablending($this->Picture,false); imagesavealpha($this->Picture,true); }

     header('Content-type: image/png');
     imagepng($this->Picture);
    }

これに変更しようとしましたが、nullが返されるようで、次のようなエラーが発生します。

警告:imagettfbbox()[function.imagettfbbox]:**のフォントファイル名が無効です

   function stroke()
    {   
    ob_start(NULL,4096);
    $this->Picture;
    header('Content-type: text/html');
    return base64_encode(ob_get_clean();  
    }
4

2 に答える 2

4

最も簡単な方法は、プロジェクトを 2 つの個別のファイルに分割することです。1 つのファイルには Web ページが保持され、もう 1 つのファイルには画像 (グラフ) が作成されます。2 番目のファイルに chart.php という名前を付けましょう。おっしゃったように、画像のみを出力します。あなたがする必要があるのは、このファイルを Web ページを保持する最初のファイルに埋め込むことです。

<img src="chart.php" width="x" height="y" />HTML コード内に追加します。

HtH、トール

于 2011-04-05T19:57:43.393 に答える
2

pImage クラスを拡張したので、次の関数を追加しました。

function strokeToBase64()
{
   ob_start();
   imagepng($this->Picture);
   $contents =  ob_get_contents();
   ob_end_clean();
   return base64_encode($contents);
}

次に、pChart lib を使用する PHP コードは、次のように関数を呼び出します。

echo $myPicture->strokeToBase64();

このようにして、上記の投稿で言及されているように、サーバーで画像ファイルを作成することなく、クライアント側で jQuery を使用して Ajax 呼び出しを簡単に呼び出すことができます。

于 2013-08-15T22:43:45.667 に答える