当前课程知识点:PHP程序设计 > PHP文件和图像技术 > 图像基本操作 > 图像基本操作1
我们刚才已经填了一个颜色
对吧填了一个颜色
那么现在就要在这个画布上面
去绘制图像了
来需要同学们仔细看一下这张图
那么绘制图像
我们是通过坐标系统去绘制的
所以也就是说
当我们有这么一个画布的时候
这个左上角的位置的坐标就是0,0
X是0 Y是0
所以呢
你想你对应的
如果要在这个位置画
你是不是应该给它一个相应的X的坐标
Y的坐标对吧
那么记住这个左上角是0,0
是X为0
Y也为0的
所以呢
你在这个画布里面去绘各种各样的图案
你都需要去设计一下
你X是多少Y是多少对吧
是这样子的一个位置OK
那么首先第一个我们可以做区域填充
那么区域填充不可以用来绘制图像
它只是干什么呢填一个颜色
在已存在的图像中
大面积的颜色很方便的可以替换为别的颜色
那么用的是这样一个函数
括号里面的参数有哪些呢
第一个又是图像句柄
你会发现咱们基本上今天学的
所有函数的第一个参数
几乎都是这个画布的资源句柄
对吧返回的资源句柄
然后第二个参数是X轴
应该是X坐标和Y坐标对吧
然后第三个参数是被替换的颜色
那么这个函数我们后面会用到
它做的是一个区域填充对吧
那么接着就到了我们重点内容了
咱们之前说我说我这节课讲图形图像
其实是为了教同学怎么做那个验证码
我相信很多同学都是上网看见过验证码的
验证码绝对不是几个数字或者几个字母数字
那样子往过一排
往往还会做什么
是不是还让它歪歪扭扭一下
对不对
让它斜一下
然后往往就是底色的那个图片
有一些点点呀
有一些斜线呀
在那交错着对不对
它为什么要干那些事情
它为什么不让我们一眼看清呢
它为了防止计算机前登录的那个不是人
没错就是为了这个
当人能够一眼看清的时候
机器也能一眼看清的
而我们为什么要歪歪扭扭
为什么要让底下加上各种的干扰线和干扰点
它是为了让机器去做这个判断的时候
不能准确判断
当然了
现在即便加上了那些干扰点
加上了那些斜线让那个字歪歪扭扭
现在机器也能看了
pertion里面有一个第三方的库叫什么
我名字我忘了
它可以直接去读
只要里面是字母和数字
它可以直接读
所以大家现在看到的验证码
往往都是什么样的
就是个最简单的计算题什么
一加二等于让你有个框
让你去写是多少对不对
那么你不要小看这个一加二等于
这个一加二等于它要先把一读出来
要把加号读出来
要把二读出来
然后他还要理解这个式子再算一个答案
对于机器来说这个还是有点困难的
所以呢那个除了人工打码之外
没有别的办法了
所以呢
咱们现在做的验证码
还是最传统最老旧的一个验证码
就是我们要加一些干扰点和干扰线
那么这就意味着我们肯定要在那个画布里面
是不是绘点了
绘点这个例子我就不做了
一会儿同学们可以自己去研究一下
因为这个例子做出来
效果不是特别好
对吧一个点在画布里面不容易看清楚
大家看清楚这个绘点的这个函数
括号里面几个参数
第一个又是一个什么
又是一个资源句柄
然后是这个点的X轴
这个点的Y轴
然后这个点的颜色好了
就这几个就这几个
好的OK
这是一个绘点的
那么我们一会儿来绘一下这个线条
这个线条很简单
这个函数就是一个后面是一个line
对吧是一条直线
括号参数比较多一些
但是事实上是比较好理解的
第一个又是一个图像句柄
然后呢
因为一条线有两点组成对不对
但是一个点呢
有一个X坐标和Y坐标组成
所以呢
后面这四个数字其实是什么
起始点来X坐标
起始点的Y坐标
结束点的X坐标结束点的Y坐标
好了这四个
然后给一个color
也就是颜色好绘了一条线OK
我们来绘一条线
就在这个画布上面绘一条线
首先我们这个地方是不是是一个红色画布
我们这条线还能不能让它红色
不能让它红色
所以这个地方我给它再加一个颜色
比如说我让它$对吧
我给它起个名
比如说$green绿色的线
绿色的线这个地方要怎么改
0然后这是什么
255
这是不是就是绿色的颜色
这只是设了个颜色
咱们还没画线呢
因为我知道咱们肯定是需要这个的
然后imageline括号
括号里面第一个是我们的画布$im
第二个起始点的X坐标
大家想一想我这是一个400×300的
咱们就差不多吧
比如说50
然后这个还是50
Y坐标也是50,50
然后呢
咱们的这个到哪个地方
结束的那个坐标设个多少
200再是个100对吧
好应该是一条斜线
然后我们这个地方color
我们刚刚选定的color是不是green好的
我们分好带起来OK好了
我好像画好了
没错
我们来跑一下
好了
画了这么一条绿线出来了
那你想我刚才说了
验证码如果你想要多条干扰线
而且每一次都不一样的话怎么弄呢
咱们是不是可以写一个循环
然后让它随机一下
还可以把颜色都随机了
对不对
来比如说我颜色怎么样都随机
这条绿线怎么样都随机
我们是不是有个rand函数
括号0,255
然后这是红色的rand0,255
Ctrl+C
然后我在Ctrl+V一下
绿色也0,255
随机让它随机起来
我们这个时候再跑一下
现在是这个颜色
我刷新一下变色了
再刷新一下还在变
你看在变不同的颜色是吧
好了你的线是不是不一样了
线的颜色首先不一样了
你能够位置不一样你怎么样
改什么
是不是改坐标呀
改坐标在多个这个干扰线不就出来了嘛
对吧
好的我们这个地方先绘了一个直线
大家可以自己动手试一下
-PHP概述
-PHP概述--作业
-开发环境搭建
--开发环境搭建一
--开发环境搭建二
--集成环境的安装
-开发环境搭建--作业
-PHP语法入门
--语法入门一
--语法入门二
-PHP数据的输出
--数据输出
-PHP数据类型
--数据类型1
--数据类型2
--数据类型3
--数据类型4
--数据类型5
--数据类型6
-PHP常量和变量
--常量和变量1
--常量和变量2
--常量和变量3
--常量和变量4
--常量和变量5
--常量
-PHP常量和变量--作业
-PHP的运算符和表达式
--运算符和表达式1
--运算符和表达式2
--运算符和表达式3
-PHP语法基础--PHP的运算符和表达式
-条件判断语句
--条件判断语句1
--条件判断语句2
--条件判断语句3
--条件语句
-循环控制语句
--循环控制语句
--循环语句练习1
--循环语句练习2
-跳转语句和终止语句
--跳转和终止语句
-流程控制
-数组概述和分类
--数组概述和分类
--PHP数组分类
-数组创建、删除和修改
--数组创建
-数组遍历
--数组遍历1
--数组遍历2
--数组遍历3
--数组遍历4
--数组遍历5
--foreach
-数组相关函数
--数组相关函数1
--数组相关函数2
--数组相关函数3
--数组相关函数4
--数组相关函数5
--数组相关函数6
--数组函数的练习
-PHP数组--作业
-分页函数的应用
-函数的定义与调用
--函数定义与调用
-函数参数传递
--函数参数传递1
--函数参数传递2
-自定义函数总结和实验
-常用变量和数学函数
--变量和数学函数库
--数学函数实验
--数学函数
-日期和时间函数
--日期时间函数1
--时间日期函数2
--倒计时
-PHP函数--作业
-字符串概述
--字符串特点
--字符串处理方式
-常见的字符串函数
--常见字符串函数1
--输出函数1
--输出函数2
--输出函数3
--去除空白函数1
--去除空白函数2
--去除空白函数3
--其他字符串函数1
--其他字符串函数2
--字符串函数实验1
--字符串函数实验2
--字符串函数实验3
--字符串函数实验4
--字符串练习1
--字符串练习2
--字符串练习3
--字符串练习4
--字符串练习5
--字符串函数
-正则表达式
--正则表达式练习
--正则表达式
-字符串函数--作业
-文件概述和操作
--文件概述和操作1
--文件概述和操作2
-文件的上传和下载
--文件上传1
--文件上传2
--文件上传3
--文件下载
-图像基础
--图像基础1
--图像基础2
-图像基本操作
--图像基本操作1
--图像基本操作2
--图像基本操作3
--图像基本操作4
--图像基本操作5
--图像基本操作6
--表单与验证码的结合
--图像技术练习1
--图像技术练习2
--图像技术练习3
--缩略图
-PHP文件与图像技术-作业
-变色验证码
-会话表单
--会话表单概述1
--会话表单概述2
--会话表单概述3
--超全局变量1
--超全局变量2
--超全局变量3
--表单安全验证
--获取表单数据
-cookie概述
--COOKIE简介
--COOKIE
-session概述
--基本应用1
--基本应用2
-会话管理-作业
-会话管理
-MySQL和PHPMyadmin概述
--MySQL概述1
--MySQL概述2
-PHP访问MySQL
--连接服务器
--选择数据库
--浏览表内容1
--浏览表内容2
--使用mysqli扩展添加数据到数据库中
--使用mysqli扩展删除数据库中数据
--使用mysqli扩展修改数据库中数据
-MySQL扩展的使用
--添加数据页面1
--添加数据页面2
--删除页面1
--删除页面2
--删除页面3
--数据修改页面1
--数据修改页面2
--数据修改页面3