加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP图片处理库Grafika详细教程(4):图形绘制

发布时间:2016-11-16 18:53:59 所属栏目:PHP教程 来源:segmentfault
导读:副标题#e# 该文章是接着上篇文章,《PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理》,是grafika教程的一个部分。 所有的教程目录 《1、图像基本处理》 《2、图像特效处理模块》 《3、图像属性处理》 《4、图形绘制》 话不多说,我们接着上实例

我们使用Polygon绘制多边形,其中参数为

  • 第一个参数为坐标点,是一个数组,其中该数组内有3个数组,每个数组有两个值,第一个值表示x,第二个值表示y

形如

array(array(0,0), array(50,0), array(0,50))

  • 第二个参数为边框宽度,0为没有,从1开始,单位为px(默认为1)
  • 第三个参数为边框颜色(默认为黑色)
  • 第四个参数为填充色(默认白色)

我们试着画几个图形

  1. use GrafikaGrafika; 
  2. use GrafikaColor; 
  3. $editor = Grafika::createEditor(); 
  4. $editor->open($image , 'yanying-smaller.jpg'); 
  5. $editor->draw( $image, Grafika::createDrawingObject('Polygon', array(array(0,0), array(50,0), array(0,50)), 1)); 
  6. $editor->draw( $image, Grafika::createDrawingObject('Polygon', array(array(200-1,0), array(150-1,0), array(200-1,50)), 1)); 
  7. $editor->draw( $image, Grafika::createDrawingObject('Polygon', array(array(100,0), array(140,50), array(100,100), array(60,50)), 1, null, new Color('#FF0000'))); 
  8. $editor->save($image,'333/Polygon.jpg');   

PHP图片处理库Grafika详细教程(4):图形绘制

5、二次贝塞尔曲线

又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线

其形如这个样子

PHP图片处理库Grafika详细教程(4):图形绘制

我们使用如下代码就可以很轻松的创建

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $editor->open($image , 'yanying-smaller.jpg'); 
  4. $drawingObject = Grafika::createDrawingObject('QuadraticBezier', array(70, 250), array(20, 110), array(220, 60), '#FF0000'); 
  5. $editor->draw( $image, $drawingObject ); 
  6. $editor->save($image,'333/yanying-QuadraticBezier.jpg');  

其中参数如下

  • 第一个参数为起始点的坐标,是一个数组array(x,y)
  • 第二个参数为控制点的坐标,也是数组,数组内分别为x,y
  • 第三个参数为结束点的坐标,也是一个数组,数组内为x,y
  • 最后一个参数为颜色,默认为黑色

当然你也可以使用另外一种方式来创建二次贝塞曲线

  1. use GrafikaGrafika; 
  2. use GrafikaGdDrawingObjectQuadraticBezier as GdQuadraticBezier; 
  3. use GrafikaImagickDrawingObjectQuadraticBezier as ImagickQuadraticBezier; 
  4. $editorName = Grafika::detectAvailableEditor(); 
  5. $editor = Grafika::createEditor(); 
  6. $editor->open($image , 'yanying-smaller.jpg'); 
  7. if('Imagick'===$editorName){ 
  8.     $drawingObject = new ImagickQuadraticBezier(array(70, 250), array(20, 110), array(220, 60), '#FF0000'); 
  9. } else if ('Gd'===$editorName) { 
  10.     $drawingObject = new GdQuadraticBezier(array(70, 250), array(20, 110), array(220, 60), '#FF0000'); 
  11. $editor->draw( $image, $drawingObject ); 
  12. $editor->save($image,'333/yanying-QuadraticBezier-1.jpg');  

6、创建矩形

矩形,其实和椭圆形差不多,只是有个别参数有些差异。

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读