3

如何pchart在我的 HTML 页面上的特定位置获得一个?现在,当我按照示例并使用时

$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 个单独的文件。一个文件保存您的网页,另一个文件创建图像(图表)。让我们将第二个文件命名为 chart.php 正如您所提到的,它只输出一个图像。您需要做的是将此文件嵌入到第一个包含网页的文件中。

<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 库的 PHP 代码调用该函数,如下所示:

echo $myPicture->strokeToBase64();

通过这种方式,我可以在客户端使用 jQuery 轻松调用 Ajax 调用,而无需在服务器中创建图像文件,正如上面提到的那样。

于 2013-08-15T22:43:45.667 回答