宝哥软件园

用PHP中的GD库创建饼图的例子

编辑:宝哥软件园 来源:互联网 时间:2021-09-09

PHP中有一些简单的图像函数可以直接使用,但是大部分需要处理的图像在编译PHP时都需要添加GD库。除了安装GD库,PHP中可能还需要其他库,这取决于需要支持哪些图像格式。GD库可以在http://www.boutell.com/gd/.免费下载,不同的GD版本支持不同的图片格式。最新的GD库版本支持GIF、JPEG、PNG、WBMP、XBM等格式的图像文件以及FreeType、Type 1等部分字体库。通过GD库中的功能,可以完成各种点、线、几何图形、文字、颜色的操作和处理,还可以创建或读取各种格式的图像文件。

在PHP中,通过GD库处理图像的操作都是先在内存中处理,然后以文件流的形式输出到浏览器,或者在操作完成后存储到服务器的磁盘中。创建图像有四个基本步骤,如下所示。

创建画布:所有的绘图设计都需要在一个背景图片上完成,画布实际上是在内存中打开的一个临时区域,用于存储图像信息。未来的图像操作将基于这个背景画布,这个画布的管理类似于我们在绘制时使用的画布。

绘制图像:画布创建完成后,可以使用各种人像功能设置图像的颜色,填充画布,绘制点、线段、各种几何图形,为图像添加文字。

输出图像:绘制完整个图像后,需要将图像以一定的格式保存到服务器指定的文件中,或者直接将图像输出到浏览器中显示给客户。但是在输出图像之前,您必须使用header()函数向浏览器发送内容类型通知。这一次,发送的是图像而不是文本。

释放资源:图像输出后,画布中的内容不再有用。为了节省系统资源,需要及时了解canvas占用的所有内存资源。让我们看看一个非常简单的创建图像的脚本。在下面的脚本文件image.php中,按照上述绘制图像的四个步骤,使用GD库动态输出扇形统计图。代码如下:复制代码如下:Php //创建一个画布,返回一个资源类型变量$image,并在内存中创建一个临时区域$ image=imagecreate true color(100,100);//创建一个大小为100x100的画布//在图像中设置所需的颜色,相当于绘制时准备好的染料盒$ white=imagecolorclocate($ image,0xff,0xff,0x ff);//将图像的颜色指定为白色$ gray=imagecolorclocate($ image,0xc0,0xc0,0xc 0);//将图像的颜色指定为灰色$ dark gray=imagecolorclocate($ image,0x90,0x90,0x 90);//将图像的颜色指定为深灰色$ navy=imagecolorclocate($ image,0x00,0x00,0x 80);//将图像的颜色指定为深蓝色$深蓝色=imagecolorclocate($ image,0x00,0x00,0x 50);//给图像分配一个深蓝色:$ red=imagecolorlocate ($ image,0xff,0x00,0x 00);//将图像的颜色指定为红色$ dark red=imagecolorclocate($ image,0x90,0x00,0x 00);//将暗红色imagefill($image,0,0,$white)分配给图像;//用背景色填充画布背景//为($i=60)动态制作3D效果;$ i 50$ I-){//循环10次绘制立体效果imagefiledarc($ image,50,$ I,100,50,-160,40,$ darknavy,img _ arc _ pie);imagefiledarc($ image,50,$i,100,50,40,75,$darkgray,IMG _ ARC _ PIE);imagefiledarc($ image,50,$i,100,50,75,200,$darkred,IMG _ ARC _ PIE);} imagefiledarc($ image,50,50,100,50,-160,40,$navy,IMG _ ARC _ PIE);//画一个椭圆弧,用imagefilledarc填充($ image,50,50,100,50,40,75,$ gray,img _ arc _ pie);//画一个椭圆弧,用imagefilledarc填充($ image,50,50,100,50,75,200,$ red,img _ arc _ pie);//画一个椭圆弧,用imagestring填充($ image,1,15,55,' 34.7% ',$ white);//水平画一行imagestring ($ image,1,45,35,' 55.5% ',$ white);//水平绘制字符串//向浏览器输出GIF格式的图片标题(' content-type : image/png ');//使用header函数告诉浏览器将以下输出imagepng($image)作为图像进行处理;//将imagedestroy($image)输出到浏览器;//破坏图片,释放资源?

通过浏览器直接请求脚本,或者将脚本所在的URL分配给HTML中IMG标签的src属性,就可以得到动态输出图像结果,如下图所示:

更多资讯
游戏推荐
更多+