搜索
首页后端开发php教程使用GD2函数绘制几何图形(PHP图形图像的典型应用教程4)

使用GD2函数绘制几何图形(PHP图形图像的典型应用教程4)

本篇主要讲解使用GD2函数实现几何图形的绘制,首先我们需要的事创建一个图像,在之前的文章中我们就说过了,创建图像是所有图像操作的第一步,然后再背景上根据坐标点绘制图形轮廓,最后输出图形!

那么我们在上一篇《使用图像处理技术生成验证码(PHP图形图像的典型应用教程3)》中介绍了如何生成验证码,不知道小伙伴们有没有掌握这个知识点呢,还没有熟悉的小伙伴可以回顾一下!今天我们讲解绘制几何图形!

本文技术要点:

在本文中主要使用GD2函数来绘制几何图形,其中部分函数在前面的文章中已经进行了详细的介绍,下面我们对常用的函数进行介绍:

(1) imagecreatetruecolor()函数

该函数用于建议一个全彩的图片文件资源,该函数的语法格式如下:

int imagecreatetruecolor(int x_size,int y_size);

参数 x_size和y_size分别为图像的宽,高尺寸,单位为像素(px)。

(2)imagecolorallocate()函数

该函数用于匹配指定图像的颜色,以供其他绘图函数适用,该语法格式如下:

int imagecolorallocate(int im, int red, int green, int blue);

参数 im 表示图像的handle;参数 red,green,blue是彩色RGB三原色,其值是从 0至255的整数或者十六进制的 0x00~0xff。该函数必须被调用,以创建每一种用在 image 所代表的图像中的颜色。

(3)imagefilledarc()函数

该函数用于绘制一个椭圆并填充,该函数的语法格式如下:

int imagefilledarc(im, int cx , int w, int h, int s, int e, int color, int style);

在im所代表的图像中以 cx,cy(图像左上角为0, 0)为圆心画一个椭圆弧。如果成功则返回  true,失败则返回 false。w 和 h分别指定了椭圆的宽和高,s 和  e 参数以角度指定了起始点和结束点,color代表填充的颜色值。

style 可以是下列值按位或(OR)后的值:

  • IMG_ARC_PIE

  • IMG_ARC_CHORD

  • IMG_ARC_NOFILL

  • IMG_ARC_EDGED

IMG_ARC_PIE 和 IMG_ARC_CHORD 是互斥的;IMG_ARC_CHORD 只是用直线连接了起始和结束点,IMG_ARC_PIE 则产生圆形边界(如果两个都用,IMG_ARC_CHORD生效)。IMG_ARC_NOFILL 指明弧或弦只有轮廓,不填充。IMG_ARC_EDGED 指明用直线将起始和结束点与中心点相连,和 IMG_ARC_NOFILL 一起使用是画饼状图轮廓的好方法(而不用填充)。

(4)imagefilledrectangle()函数

该函数用于绘制一个填充了的矩形,该函数的语法格式如下:

bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int$color )

该函数将图片的封闭长方形区域着色,参数 x1,y1以及x2,y2分别为矩形对角线的坐标,参数col表示欲涂上的颜色;

(5)imagedestroy()函数

该函数用于删除图形,释放内存空间,语法格式如下:

int imagedestroy(int im);

参数 im 为imagecreate()函数,imagecreatetruecolor()函数所建立的图形!

我们现在来看看如何实现绘制几何图形:

实现过程具体代码如下:

<?php
header(&#39;Content-type: image/png&#39;);// 告诉浏览器,这个文件,是一个png图片
$img = imagecreatetruecolor(260, 200);//创建一个400X200的画布
$green = imagecolorallocate($img, 20, 145, 40);//定义一个绿颜色
$darkgreen = imagecolorallocate($img, 25, 80, 25);//定义一个深绿颜色
$blue = imagecolorallocate($img, 0, 225, 205);//定义一个蓝颜色
$darkblue = imagecolorallocate($img, 10, 180, 200);//定义一个深蓝颜色
$red = imagecolorallocate($img, 255, 0, 0);//定义一个红颜色
$bluered = imagecolorallocate($img, 202, 10, 0);//定义一个深红颜色
for($i = 110; $i > 100 ; $i--){
    imagefilledarc($img,130,$i,150,100,0,95,$darkgreen,IMG_ARC_PIE);
    imagefilledarc($img,130,$i,150,100,95,125,$darkblue,IMG_ARC_PIE);
    imagefilledarc($img,130,$i,150,100,120,360,$bluered,IMG_ARC_PIE);
}
imagefilledarc($img,130,$i,150,100,0,95,$green,IMG_ARC_PIE);
imagefilledarc($img,130,$i,150,100,95,125,$blue,IMG_ARC_PIE);
imagefilledarc($img,130,$i,150,100,120,360,$red,IMG_ARC_PIE);
imagepng($img);//以png格式输出图像
imagedestroy($img);//释放资源
?>

输出结果如下:

74.png

使用GD2函数绘制几何图形,我们到这里就介绍完了,相信小伙伴们都可以掌握此项功能,那么我们下面继续介绍关于图像的如何在图表中添加行和列标签,具体请阅读《使用GD2函数向图表中添加行和列标签(PHP图形图像的典型应用教程5)》!

以上是使用GD2函数绘制几何图形(PHP图形图像的典型应用教程4)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace("&nbsp;","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版