热线电话 13988999988
首页
关于我们
产品中心
永利直营网站
成功案例
永利线上娱乐官方网站
澳门永利皇宫酒店
在线留言
联系我们
网站公告永利直营网站_澳门永利皇宫酒店_永利线上娱乐官方网站

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

发布时间:2019-05-14 06:13

《1、图像基本处理》

use GrafikaGrafika; use GrafikaColor; $editor = Grafika::createEditor(); $editor->open($image , 'yanying-smaller.jpg'); $editor->draw($image, Grafika::createDrawingObject('Line', array(0, 0), array(200, 200), 1, new Color('#FF0000'))); $editor->draw($image, Grafika::createDrawingObject('Line', array(0, 200), array(200, 0), 1, new Color('#00FF00'))); $editor->draw($image, Grafika::createDrawingObject('Line', array(0, 0), array(200, 100), 1, new Color('#0000FF'))); $editor->draw($image, Grafika::createDrawingObject('Line', array(0, 100), array(200, 100))); $editor->draw($image, Grafika::createDrawingObject('Line', array(100, 0), array(100, 200))); $editor->save($image,'333/Line.jpg');   

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

5、二次贝塞尔曲线

《4、图形绘制》

这里使用Ellipse参数来绘制椭圆。

1、绘制贝塞尔曲线

可以使用如下的代码直接创建一个矩形

use GrafikaGrafika; $editor = Grafika::createEditor(); $editor->open($image , 'yanying-smaller.jpg'); $drawingObject = Grafika::createDrawingObject('CubicBezier', array(42, 230), array(230, 237), array(42, 45), array(230, 43), '#000000'); $editor->draw( $image, $drawingObject ); $editor->save($image,'333/yanying-CubicBezier-1.jpg');  

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

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

6、创建矩形

2)、可以让grafika自己去选择当前适合的类

话不多说,我们接着上实例,要看基础描述,和下载信息请看第一篇

这种方法就是简单了许多,我们这次重新设定了参数,并且把线条颜色改为了黑色

1)、自行选择库,这种方法需要自行判断

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

其中参数如下

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

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

效果不错,以后再搞验证码就简单多了

4、绘制多边形

椭圆的宽:px为单位 椭圆的高:px为单位 位置(数组):数组内第一个值为x(椭圆最左边距离图像最左边值),第二个值为y(椭圆最上边距离图形最上边值) 边框宽度:单位px,如果设置为0,则表示无边框,默认为1px 椭圆边框颜色:该值需要借助于color类,而不是简单的填入一个颜色字符串 椭圆的填充值:该颜色同上

我们创建一个200*100,距离左边50,上边75,边框为1,边框色为黑色,填充红色的椭圆。

第一个(数组):表示起始点,数组内第一个参数为x,第二个参数为y(下同) 第二个(数组):控制点1(接近起始点),数组内参数同上 第三个(数组):控制点2(接近结束点),数组内参数同上 第四个(数组):结束点,数组内参数同上 第五个:颜色,可以用十六进制表示,比如:#ff0000

绘制贝塞尔曲线有两个方法。但是大体步骤相同。1:、打开图片;2、绘图;3、保存或者输出

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

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

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

我们试着画几个图形

《2、图像特效处理模块》

use GrafikaGrafika; use GrafikaColor; $editor = Grafika::createEditor(); $editor->open($image , 'yanying-smaller.jpg'); $drawingObject = Grafika::createDrawingObject('Ellipse', 200, 100, array(50, 75), 1, new Color('#000000'), new Color('#FF0000')); $editor->draw( $image, $drawingObject ); $editor->save($image,'333/yanying-Ellipse.jpg');  

查看结果

该文章是接着上篇文章,《PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理》,是grafika教程的一个部分。

use GrafikaGrafika; use GrafikaColor; $editorName = Grafika::detectAvailableEditor(); $editor = Grafika::createEditor(); $editor->open($image , 'yanying-smaller.jpg'); $editor->draw( $image, Grafika::createDrawingObject('Rectangle', 85, 50)); // A 85x50 no filled rectangle with a black 1px border on location 0,0. $editor->draw( $image, Grafika::createDrawingObject('Rectangle', 85, 50, array(105, 10), 0, null, new Color('#FF0000'))); // A 85x50 red rectangle with no border. $editor->draw( $image, Grafika::createDrawingObject('Rectangle', 85, 50, array(105, 70), 0, null, new Color('#00FF00'))); // A 85x50 green rectangle with no border. $editor->draw( $image, Grafika::createDrawingObject('Rectangle', 85, 50, array(0, 60), 1, '#000000', null)); // No fill rectangle $editor->save($image,'333/yanying-Rectangle.jpg');