如何在HTML页面的特定位置获得pchart
?现在,当我按照示例使用
$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();
}
答案 0 :(得分:4)
最简单的方法是将项目拆分为2个单独的文件。一个文件保存您的网页,另一个文件保存图像(图表)。我们将第二个文件命名为chart.php 正如您所提到的,它仅输出图像。您需要做的是将此文件嵌入到保存网页的第一个文件中。
在您的HTML代码中添加<img src="chart.php" width="x" height="y" />
。
HtH,Thor
答案 1 :(得分: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调用,而无需在服务器中创建图像文件,如上所述。