00:00
好,那我们继续来上课,那么上节课呢,我们介绍了我们这个基地库里边的这些基本的常规操作,对吧,那么这节课呢,我们再来他做一下这个训练,我们再来去练习一下啊,让他做一个验证码啊,那咱们来这里边新建一个PP的文件,叫做零六啊,来个扣。好了,那我们要做验证码,咱们先不管验证码怎么做啊,我们先想,那我们要画图是不是还要六步,第一步干嘛呀,是不是这个。创建发布啊。创建。跑步。第二件事呢,分配颜色。第三天开始绘画对吧,绘画呢,就是画验证码相关的东西,验证码有啥,验证码是不是就是有字符对吧,还有什么,还有干扰干扰。点还有干。线呢,是不是就这这三个东西对吧?我们做验证码的目的,为什么网站会有验证码,是不是就为了防止这个注射机批量的注册对不对?哎,因为我们有这些干扰点,有这些干扰线,还有这些字符给他对着干扰,那注射机不好识别,识别不到啊,所以验证码的目的就是做这个事儿了,然后第四件事呢,是不是就告诉浏览器画的是什么对吧?然后呢,第五件事呢,是不是输出到浏览器,然后第六件事干嘛呀,是不是释放。
01:16
资源了,对吧,那我现在这里面先释放资源了,Image第一给一个Dollar了image,那肯定我要创建的时候,是不是就要创建这个image对象或者image image资源嘛,所以到了image就等于怎样叫做这个create。不对,应该叫image t出color。创建一个真彩色的对吧,比如说给他一个100乘40的啊,100乘40的这么一个宽高,这么一个画布,好了,有了画布以后开始给它分配颜色吧,那比如说这里边分配颜色的时候,那颜色我是不是可以让它随机的对不对?比如说这里面的背景颜色啊,BABA等于等于什么呢?等于一个image color l给谁呢?给Dollar image里分配随机的颜色,MT杠状的,比如说我让它200~255的,这是不是一个随机值啊,对吧?都是浅色调的,值越大是不是越浅呢?到255都是255的时候,是不是就变成什么了,是不是就变成了这个白色了,对吧?哎,来一个。
02:14
这个啊,我这个扣值打多了就给改过来了,好了啊,都是二百二百五十五的,那OK,那有了这个背景颜色以后,接下来干嘛,我是不是得填充啊。那填充一会来说,我们先告诉浏览器我画的是什么,这里边叫做con content type,内容类型imagepe。好,然后那对应的输出的话,是不是就用image gpg这个函数来输出就可以了,那输出谁呢?输出这个到了image,那现在我来开始填充,那feel不对,叫做image。L给谁给到了一面积从哪开始,从零零开始对吧,填充什么颜色呢?填充这个BA这个颜色,那现在我们来看啊,在这里边。来零六你看。背景颜色是不是有了,而且每次刷新背景颜色是不是都都在微微的变化,哎,同样我也可以给他干嘛换个边框,那换个边框的话啊,比如说为。
03:06
给背景画边框是吧?这都属于我们准备工作对吧?那画边框的话,那是不是依然是我,比如说我在里面先分配一个颜色嘛,来Dollar red等于什么image color a边框我就固定的了啊,给它255001个红色,那在这里边画边框的话,是不是ES面一面哪个函数是不是这个画一个矩形啊对吧?那矩形的函数叫什么?在这里边我们刚才是不是在上节课中我们就已经画过了,叫做什么E这个recct啊对不对,所以这里边就是recct。然后给谁画给这个,呃,到了一位就画从哪开始,从零零开始对吧,到哪呢,到140对吧,然后什么颜色呢,画成红色的好了,那现在咱们来看这里边,诶有没有红色边框,有吧,但是注意了啊。我的边框是不是只能看到这两条边,这条边和这条边,为什么这条边和这条边看不着,你想想我的整个画布,画布的大小是140,当你画的时候好是不是从这画画140,是不是正好多出去一项数了,对不对?所以我是不是应该对应的缩小啊,所以这应该是什么?应该是。
04:11
99。和39啊,这个时候你再来看我是不是就能看到边框了,看到了吧,是不是有边框了,哎,好了,那有了边框以后接下来干嘛,接下来我是不是就可以往里边去画我的干扰点,干扰线和文字了,对吧?那也就是说在这里边接下来我们要考虑的就是画。干扰线,然后呢,再来画。干扰点,然后还有什么画文字是不是这样的,哎,那画干扰线的话,那一样线我给它随机一下,比如说for Dollar I等于零,Dollar a小于小于什么呢?小于10DOLLAR I再加是不是画十条线,那画十条线的话一样它的颜色啊,比如说嫩。它的啊,我在这里面分配,分配完是不是就随机的每循环一次,是不是就循环一个颜色。哎,那一样跟到了image里边MT-round我还是要的随机颜色,比如说这个线呢,是呃一百八到200的啊,或者是咱们低点吧,到一百九啊一百九一百九那这块给他一个100,呃一百五到一百九的啊。
05:15
CTRLCCTRLVCTRL位好,那么随每去换一次,它都是一个随机颜色,就是每个线是不是都是一个随机颜色,然后以面积,那给谁给到了以面集里面去画,然后坐标呢?那MC-round。是不是原来随机画,随机画的话,那从哪啊,从二开始对吧,到什么到我的宽度减二吧,因为别画到边框上对不对,所以到我的宽度减二,那就是98对吧,然后垂直的呢,MT-round的也是从二到我哪到我的这个高度减二,高度是40减二是是38,哎,好了,这是我的一个点对吧,随机的一个点,然后咱们应该随机两个点,是不是才出一条线,我就直接把它复制了,然后线的颜色呢?那直接这个like color是不是就可以了,那这个时候你再来看我的随机线。是不是就有了,哎,随机线有了,那接下来干嘛,接下来是不是随机的点啊,对吧,那点也一样,我也这么去画来,比如说放循环得了A等于零点,咱们可以多画点边小于300得了A。
06:10
再加加加完以后那点了颜色我也让他随机了,比如说叫做这个啊呃。P ell吧。等于什么呢?等于image color。然后给到了一面机里面继续分配MT-round这个多少呢?比如说呢,一百二到一百五之间去税地。好,CTRLCCTRLVCTRLV完事,完事以后,那在这里边还是一样image set,然后pixel给谁呢?给到了image里边,然后点也一样,是不是也要随机MT-r run的位置我们一样,还是从二到多少到98,那这个呢,是不是也一样,MT-run从二到多少到38呀,对吧,然后再往后。呃,两个。两个坐标决定一个点就已经可以了,对吧,接下来是不是就它的颜色了,PXCL好搞定,那现在你再来看我的这个随机的干扰点,这就过来了,哎,剩下的是干嘛是就往里面写字符了,那写字符比如说我把画字。
07:07
放到最上边。啊,那画什么字,你是不是得把字提前准备了?哎,我这里面应该少一条线没复制过来啊。好,把这个字准备一下,那比如说我来定义S下等于,等于什么呢?等于这个就是ABCDEFGHIZKLMN,然后OPQRST。UV。WXYZ,然后ABCDEFGHHIZKLMNNOPQRSTRSTUVWXYZ,对吧,然后再来一个零到九。是这些东西,哎,那么这里面咱们做第一件事干嘛把重复的相同的给它删掉,比如说lo,还有他跟谁比较像呢?跟这个大写的I。对吧,还有这个大写的。O呢,在这儿对吧,还有我们的。零和一是不是这些都比较相像的,哎,相似的我就干嘛都给它删掉对吧,以免让它这个输入错误好了,那最终现在是不是就得到了这么样的一个串啊,对吧?包括二跟Z,你是不是如果认为它相等,是不是也可以删掉,哎,好了,那现在完事以后我有这么一个字母串了,那么最终不管怎么画,我是不是从这个字符串中随机的拿出四个就可以了吧?所以在这里边看好了我for循环,比如Dollar I等于0DOLLAR I。
08:28
到了I,比如我们就写四个啊,到了A小于小解小于四对吧,然后到了I加加好了,那加加完以后,这回是不是就循环零到三了,对吧,零到三的,你想我第一次比如说这个到str。到str里边的这个Dollar I是不是就为零的时候,是不是就拿的它对不对,然后为一的时候是不拿的,就它为二时候是不是就拿它,为三的时候是不是就拿它是不是拿四个,但咱这四个每次都要随机,这个字母数是来可以打乱的,对吧?那我可以怎么取呢?我可以这么取,你看啊,在这里边这个数我是不是随机的对吧?这个数最好是随机的,所以MT-RA随机从那开始,从零到什么呢?到到了str的。
09:06
Str,不对,是呃,S tr len。然后把到X加九里边减一是不是就可以了,对吧?啊,它就会返回十,比如说返回十个长度,那我我十减一是不是九零到九是不是有下标啊,哎,每次随机是不是都是每次循环我都随机获取一个下标啊哎,获取到这一个下标以后来我把它给它复制一个什么呢?比如说叫做什么呢?叫做这个。呃,到了叉吧。到了差好了,有了到了差以后,咱们是不是就可以写了,乙面积差给谁写,往哪写,我给这个到了一面积里面写,写多大呢?比如说MT-round,我循环三到五对吧,然后再往后,它的这个颜色呢?啊不是它的坐标呢,坐标咱们是不是也是随机的,比如Dollar X我先写啊,Dollar X Dollar y,然后再往后什么你要写的字母,字母Z字母是不是差啊,然后再后你的颜色,颜色有吗?没有,那我先来一个放color好了,那我们把没有的变量是不做出来。那这里边Dollar found color自己的颜色也一样,等于image color。
10:05
然后在这里面给到一面积里边MT-round随机,比如这个随机多少随机从零到呃,一百二的。CTRLCCTRLVCTRLVK字的颜色是不是深一些了?哎,然后再往后呢,还有我的刀X和我的do y。到了Y对吧,哎,这两个变量我们是还得给他,那这两个变量我们怎么做呀,那你看好了,比如说X的啊,我要水平换一个字符,你看比如这块我写了个A,这块我写了个B,是不是挨着写CB是不是I的呀,那I的话,你比如说这里的总宽度是多少,100对吧,那我给它平均分成四份。是平负这个位置是不是就零这个位置是不是25这个位置说50到这块是不是75是不是这个意思,那也就是说在这里边,那是不是X的位置就应该什么,就应该是我的这个100除以除以谁是不是除以四,我就写四个嘛。对吧?除以四乘以乘以谁乘以哆来啊,对吧?那你看当D到来为零的时候啊,100除以四是25 25乘以零是不是得零,当哆来为一的时候,一乘以25是不是等于25对吧?当它为二的时候,二乘25是50,为三的时候,三乘25是不是就为75啊对吧?那X位置是不是有了,那Y的位置呢?Y的位置我是不是也可以干嘛,也可以给他随机一下,因为它是什么,它是一个顶点对吧?哎,我用这个差来写。
11:24
你面积差来写它的这个坐标是不是代表了我这个字符的左上角的坐标是不是顶点的,所以在这块我就可以给他比如说MP-round r随机随机一个位置呗,比如说从哪呢?从这个呃。五五到哪儿啊,五到我的这个高度的一半,这就可以了。对吧,也就是说到我的高度的一半,那就是呃20呗,对不对,我高度是40嘛,五到20随机一个数呗,对吧,然后这里面每次随机的位置,我再给它加一个MT杠状的,比如说加个多少,加一个三到八之间再随机一个数。对不对,一个变光顶的那个位置来写,那现在X跟Y是不是就有值了,有值以后,现在我们再来看这个数来刷新字,我是不是就写上来了。
12:05
看到了吧,这次就搞定了,哎,那OK,那这是什么,这是我写的这个用系统的方式去写的,那能不能不用系统的方式呢?那比如说把这些。我们都给他。这个不用啊。再把它。放到这边来啊。好了,那不用系统的方式,我就把这几个组织掉就可以了,主要就是位置对吧,不用系统的,比如说我用什么用自体库的,那是不是image,呃。TTFTST,对吧?给到了隐面机里边去写,然后字体大小呢,比如说MT杠弱呢,我让它多少呢,从这个呃,15~20随机一个对吧,然后倾斜角度呢,比如说再来MT-round从零到40,再随机一个对吧,不用给太大啊,然后再往后呢,是不是又是X点跟Y点了,那继续到X和Dollar y是不是给这两个点。哎,为什么给这两个点。
13:01
但这两个也一样,是决定什么我字的这个痣的下标吧。然后再往后再给给什么,是不是给它的颜色,那颜色的话是不是就是我的这个,呃,Dollar front color字体的颜色,对吧,然后再往后呢,是不是我的这个。呃,字体的文件了。对吧,那自己的文件的话,我需要给他一个固定的了,对吧,我们把这个文件拿过来啊,来这里面是不是有个路径啊。把它。CTRLC放到我们这里面来。选择CTRV好了,然后接下接下来就是最后一个,你要写的是什么内容,对吧?我要写的是谁啊?我要写的是不是就是这个Dollar叉,诶那把Dollar叉放里边啊一样Dollar叉放里边好了,那差放里边以后注意这个XY我要怎么设置啊,到了X我可以依然是什么?依然是我的这个总宽度对吧?除以四对吧?然后再去乘以一个Dollar I加加什么加MT高。Round,比如说还是一样三到八随机一个对吧,但是的高度呢,到了Y呢,哎,就是这个纵坐标,你要从哪写啊,你要注意它的这个坐标是不是自己的左下角的坐标啊,那既然是左下角的话,那我是不是可以MT-run应该怎么应该是它的。
14:13
高度的一半吧,高度的一半是不是20到它的高度到40是不是到这个区间去随机啊,因为它代表的是左下角的下标,对不对,那好了,那现在我们完事了,我们再来看这个用系统的这个用自体库的文件去写的。是不是长这样了?看到了吧。哎,所以这里面比如说高度一半我还可以干嘛,比如说高度的一半,我这块20对吧,我也可以让它再低一点,比如说我24。刷新。是不是就不会超出了?看了吧,那我的验证码的功能是不是就实现了?哎,那OK,那么一样,我来写基础的版本,大家需要干嘛呢?去封装对应的验证码啊,验证码函数,如果人家传入自体库文件,就要用人传自理库文件的方式去写,如果人没传入就用什么,就用你系统默认的这种方式去写,所以你要考虑怎么去给它封装啊好,那这节课我们到这里。
我来说两句