php中的绘图技术分析
发布时间:2022-07-21 14:39:49 所属栏目:PHP教程 来源:互联网
导读:在php中,使用php绘图,在访问php文件时可以出现我们绘制的图像。php绘图技术可以应用于报表的开发、验证码的设计。 在介绍php绘图技术之前,我们首先需要了解一下php中的绘图坐标系:php坐标系中,坐标原点位于左上角,以像素为单位。坐标(x,y)第一个是x
在php中,使用php绘图,在访问php文件时可以出现我们绘制的图像。php绘图技术可以应用于报表的开发、验证码的设计。 在介绍php绘图技术之前,我们首先需要了解一下php中的绘图坐标系:php坐标系中,坐标原点位于左上角,以像素为单位。坐标(x,y)——第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标点y个像素。 php绘图的基本原理和步骤 (1)创建画布 (2)绘制需要的各种图形(圆,直线,矩形,弧线,扇形...) (3)输出图像到网页,也可以另存(可以另存为网站开发常见的几种图片格式,基于存储格式问题,下面介绍一下常见图片格式的特点) (4)销毁该图片(释放内存) 目前网站开发常见的图片格式有:gif jpg/jpeg png bmp... 总结: gif 图片压缩率高,但是只能显示256色,可能造成颜色丢失,可以显示动画图片; jpg/jpeg 图片压缩率高(有损压缩),可以用较小的文件来显示,网页上用的比较多; png(高保真) 该格式综合了gif和jpg的优势,缺点就是不能显示动画。 现在,开始介绍一下php中自带的绘图函数。在开讲之前,首先要确认php配置文件中是否已经启用了gd库(php的绘图库)—— extension=php_gd2.dll。如果没有启用,则启用后需重启apache!!! 开始在画布$im上绘制图形: 选择绘制图形使用的颜色(这里使用红色) //创建一个颜色 $red=imagecolorallocate($im,255,0,0); (1)画椭圆(当然用同样的函数也可以画出圆) imageellipse($im,20,20,20,20,$red); 第1个参数表示在哪个画布在绘图;第2、3个参数表示椭圆的中心坐标(x,y); 第4、5个参数表示椭圆的宽、高(当然宽、高相同时则画出来的椭圆就是圆); 第6个参数表示使用的颜色。 (2)画直线 imageline($im,0,0,400,300,$red); 第1个参数表示在哪个画布在绘图; 第2、3个参数表示直线的起点坐标(x1,y1); 第4、5个参数表示直线的终点坐标(x2,y2); 第6个参数表示使用的颜色。 (3)画矩形 imagerectangle($im,2,2,40,50,$red); 第1个参数表示在哪个画布在绘图; 第2、3个参数表示矩形的左上角坐标(x1,y1); 第4、5个参数表示矩形的宽、高; 第6个参数表示使用的颜色。 (4)画填充矩形 imagefilledrectangle($im,2,2,40,50,$red); (参数含义同”画矩形“) (5)画弧线 imagearc($im,100,100,50,50,0,30,$red); 画弧线是基于类似画椭圆的参数传递参数的。 第1个参数表示在哪个画布在绘图; 第2、3个参数表示弧线所在椭圆的中心坐标(x,y); 第4、5个参数表示弧线所在椭圆的宽、高; 第6、7个参数表示从(第6个参数的值)度到(第7个参数的值)度(如,第6、7个参数值分别为0、30,此时表示从0°顺时针旋转30°画出弧线,而0°所在方向是水平向右的方向); 第8个参数表示使用的颜色。 (6)画扇形 imagefilledarc($im,100,100,80,50,180,270,$red,IMG_ARC_PIE); (前8个参数的含义同”画弧线“)第9个参数是php中自带的常量。该值可以为: IMG_ARC_PIE (7)拷贝源图片到目标画布 首先要加载源图片(如,arrow.jpg) $srcImage=imagecreatefrompng("arrow.jpg"); 这里特别注意的是:虽然我这张图片的后缀名为jpg,但实际上我调用的却是加载格式为jpg图片的函数。可能读者会纳闷,为什么不是调用imagecreatefromjpeg这个函数呢?实际上,文件的后缀名不能让我们断定该文件究竟属于哪种格式,也就是说即便现在这张图片的后缀名是.jpg,但是也有可能这个图片的真正格式是png格式。那么如何知道该图片的真正格式呢?可以使用getimagesize("arrow.jpg"); 查看该图片的格式。 $test=getimagesize("arrow.jpg"); print_r($test); 打印出返回结果$test后,你就会知道它返回结果的含义了。包括我们可以清楚地知道该图片的”真面目“,其实格式是png格式。同样还可使用该函数,得到源图片的宽、高。 //这里我们可以使用一个getimagesize() $srcImageInfo=getimagesize("arrow.jpg"); $imageWidth=$srcImageInfo[0]; $imageHeight=$srcImageInfo[1]; 得到宽、高后,将图片拷贝到目标画布上。 //拷贝源图片到目标画布 imagecopy($im,$srcImage,0,0,100,0,$imageWidth,$imageHeight); 第1个参数表示在哪个画布在绘图; 第2参数表示加载的源图片; 第3、4个参数表示目标画布的坐标(x1,y1)(拷贝至画布的坐标(x1,y1)位置); 第5、6个参数表示截取原图片的左上角的坐标(x2,y2)位置; 第7、8个参数表示截取原图片的宽、高值。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |