A-A+

GD2类库与jpgraph类库

2012年02月05日 编程技术 暂无评论

12.1 在 PHP 中加载 GD 库

GD 库在 PHP5 中是默认安装的,但要激活 GD 库,必须修改 PHP.ini 文件,将该文件中的";extension=php_gd2.dll"选项前的分号";"删除,保存修改后的文件并重新启动 Apache 服务器即可生效。

12.2 Jpgraph 的安装与配置

安装:从其官方 http://www.aditus.nu/jpgraph/ 下载。(1) 将压缩包下的全部文件解压到一个文件夹中如 d:\wamp\www\jpgraph\。(2) 打开 PHP 的安装目录,编辑 PHP.ini 文件并修改其中的 include_path 参数,在其后增加前面的文件名,如 ;include_path = ".;d:\wamp\www\jpgraph\" 。(3) 重新启动 Apache 服务器即可生效。

支持中文的配置: Jpgraph 支持的中文标准字体可以通过修改 jpg-config.inc.php 文件中的CHINESE_TTF_FONT 的设置来完成。DEFINE('CHINESE_TTF_FONT','bkai00mp.ttf');

12.3 图形图像的典型应用

12.3.1 创建一个简单的图像:在 GD2函数库中创建画布,可以通过 imagecreate()函数实现。

[code lang="php"]

[/code]

12.3.2 使用 GD2 函数在照片上添加文字

[code lang="php"]

[/code]

说明:主要使用 imageTTFText()函数输出文字到照片中。其中,$sm 是指照片,220是字体大小,0 是文字水平方向,480、340 是文字的坐标值,$textcolor 是文字的颜色,$fnt 是字体,$motto 是照片文字。

12.3.3 使用图像处理技术生成验证码

创建一个 checks.php文件,在该文件中使用 GD2 函数创建一个 4 位的验证码

[code lang="php"]

[/code]

12.3.4 使用柱形图统计图书月销售量

[code lang="php"]
SetScale("textlin");$graph->yaxis->scale->SetGrace(20); $graph->SetShadow(); //创建画布阴影//设置统计图所在画布的位置,左边距40、右边距30、上边距30、下边距40,单位为像素
$graph->img->SetMargin(40,30,30,40);$bplot = new BarPlot($datay); //创建一个矩形的对象
$bplot->SetFillColor('orange'); //设置柱形图的颜色
$bplot->value->Show(); //设置显示数字
$bplot->value->SetFormat('%d'); //在柱形图中显示格式化的图书销量
$graph->Add($bplot); //将柱形图添加到图像中
$graph->SetMarginColor("lightblue"); //设置画布背景色为淡蓝色
$graph->title->Set("《php5从入门到精通》2007年销量统计"); //创建标题//设置X坐标轴文字
$a=array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");
$graph->xaxis->SetTickLabels($a); //设置X轴
$graph->title->SetFont(FF_SIMSUN); //设置标题的字体
$graph->xaxis->SetFont(FF_SIMSUN); //设置X轴的字体
$graph->Stroke(); //输出图像
?>
[/code]

12.3.5 使用折线图统计图书月销售额

[code lang="php"]
img->SetMargin(50,40,30,40); $graph->img->SetAntiAliasing(); //设置折线的平滑状态
$graph->SetScale("textlin"); //设置刻度样式
$graph->SetShadow(); //创建画布阴影
$graph->title->Set("2007年《php5从入门到精通》图书月销售额折线图"); //设置标题
$graph->title->SetFont(FF_SIMSUN,FS_BOLD); //设置标题字体
$graph->SetMarginColor("lightblue"); //设置画布的背景颜色为淡蓝色
$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD); //设置Y轴标题的字体
$graph->xaxis->SetPos("min");$graph->yaxis->HideZeroLabel();$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');$a=array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月");//X轴
$graph->xaxis->SetTickLabels($a); //设置X轴
$graph->xaxis->SetFont(FF_SIMSUN); //设置X坐标轴的字体
$graph->yscale->SetGrace(20); $p1 = new LinePlot($datay); //创建折线图对象
$p1->mark->SetType(MARK_FILLEDCIRCLE); //设置数据坐标点为圆形标记
$p1->mark->SetFillColor("red"); //设置填充的颜色
$p1->mark->SetWidth(4); //设置圆形标记的直径为4像素
$p1->SetColor("blue"); //设置折线颜色为蓝色
$p1->SetCenter(); //在X轴的各坐标点中心位置绘制折线
$graph->Add($p1); //在统计图上绘制折线
$graph->Stroke(); //输出图像
?>
[/code]

12.3.6 使用 3D 饼形图统计各类商品的年销售额比率

[code lang="php"]
SetShadow(); //设置画布阴影
$graph->title->Set("应用3D饼形图统计2007年商品的年销售额比率");//创建标题
$graph->title->SetFont(FF_SIMSUN,FS_BOLD); //设置标题字体
$graph->legend->SetFont(FF_SIMSUN,FS_NORMAL); //设置图例字体
$p1 = new PiePlot3D($data); //创建3D饼形图对象
$p1->SetLegends(array("IT数码","家电通讯","家居日用","服装鞋帽","健康美容","食品烟酒"));
$targ=array("pie3d_csimex1.php?v=1","pie3d_csimex1.php?v=2","pie3d_csimex1.php?v=3","pie3d_csimex1.php?v=4","pie3d_csimex1.php?v=5","pie3d_csimex1.php?v=6");
$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
$p1->SetCSIMTargets($targ,$alts);$p1->SetCenter(0.4,0.5); //设置饼形图所在画布的位置
$graph->Add($p1); //将3D饼形图添加到图像中
$graph->StrokeCSIM(); //输出图像到浏览器
?>
[/code]

标签:

给我留言