![粤高教版八年级下册信息技术第2单元第3课 生成登录验证码 课件01](http://img-preview.51jiaoxi.com/2/14/14315128/0/0.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第3课 生成登录验证码 课件02](http://img-preview.51jiaoxi.com/2/14/14315128/0/1.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第3课 生成登录验证码 课件03](http://img-preview.51jiaoxi.com/2/14/14315128/0/2.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第3课 生成登录验证码 课件04](http://img-preview.51jiaoxi.com/2/14/14315128/0/3.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第3课 生成登录验证码 课件05](http://img-preview.51jiaoxi.com/2/14/14315128/0/4.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第3课 生成登录验证码 课件06](http://img-preview.51jiaoxi.com/2/14/14315128/0/5.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第3课 生成登录验证码 课件07](http://img-preview.51jiaoxi.com/2/14/14315128/0/6.jpg?x-oss-process=image/resize,w_794/sharpen,100)
![粤高教版八年级下册信息技术第2单元第3课 生成登录验证码 课件08](http://img-preview.51jiaoxi.com/2/14/14315128/0/7.jpg?x-oss-process=image/resize,w_794/sharpen,100)
初中信息技术粤高教版 (2018)八年级下册第3课 生成登录验证码——PIL库的应用评课ppt课件
展开图 2-3-1 某网站登录界面
图中的验证码是x7pa;验证码通常还有选择点击图、滑动图等
本课的任务是生成一张含有5位随机数验证码图片。程序要解决的关键问题:一是如何生成一张随机颜色的底图;二是如何在该图上添加五个0~9之间的随机数。 要实现以上功能,需要利用一下两个库(模块):(1)利用randm模块随机设定底图颜色和验证码的数字(2)利用PIL库生成底图并添加验证码
pip install pillw
本课任务将用到PIL库中的Image,ImageFnt,ImageDraw三个模块。Image模块是PIL中的核心模块,具有创建、打开、显示、保存、裁剪和获取图像属性等功能;ImageDraw模块具有在图像上绘图和添加文字等功能。从PIL库中导入这三个模块的命令如下:
frm PIL imprt Image,ImageDraw,ImageFnt
#charpic.py#从PIL库中导入这三个模块frm PIL imprt Image,ImageDraw,ImageFnt#创建一张宽200、高100的红色底图img=Image.new(‘RGB’,(200,100),’red’)canvas=ImageDraw.Draw(img) #把底图放到“画布”canvas上
#设变量fnt,记录文字样式为simsun字体,大小26fnt=ImageFnt.truetype(‘simsun.ttc’,26)#在坐标为(20,0)的位置上添加样式为fnt蓝色文字‘welcme!’canvas.text((20,0),’Welcme!’,’blue’,fnt)img.shw() #显示生成的图片img.save(‘charpic.jpg’) #以文件名charpic.jpg保存图片
1、修改程序captcha.py,创建其他尺寸和颜色的底图,并把自己姓名的汉语拼音添加到底图的中间位置。
2、在IDLE交互模式下按顺序输入以下命令,参考图2-3-2的输出内容情况,比较imprt命令与frm-imprt命令有何不同。
>>>imprt numpy #导入库>>>linspace(0,10,6) #生成等差数列>>>numpy.linspace(0,10,6) #生成等差数列>>>frm numpy imprt linspace #从库中导入对象(函数)>>>linspace(0,10,6) #生成等差数列
图2-3-2imprt命令与frm-imprt命令执行效果比较
根据前面的分析,生成一张含五位随机数验证码图片的算法思路如下:
1、从PIL库导入Image、ImageFnt、ImageDraw三个模块2、从randm模块导入randint()函数3、创建验证码的随机色底图4、设定底图为要添加内容的对象5、在底图上添加五个0~9之间的随机数作为验证码6、显示和保存图像
四、编写程序(一)创建底图
利用Image模块中的new()函数来创建底图。为了得到随机颜色的底图,需要生成三个0~255之间的随机数,分别作为R、G、B三个颜色通道的数值。
请根据以上提示完善程序captcha.py,创建一张随机颜色的底图。
# captcha.py frm PIL imprt Image,ImageDraw,ImageFnt #导入模块frm randm imprt randint #从标准库的随机模块中导入函数randint
#用三个变量分别存放生成三个0~255的随机数,作为R、G、B通道的三个数值c1=randint(0,255) c2=_________________ c3=_________________img=Image.new(‘RGB’,(150,30),(c1,c2,c3)) #创建随机颜色的底图
randint(0,255)
(二)设定底图为要添加内容的对象
有了底图,再通过以下的代码设定,就可以调用相关函数在该图上进行绘图和添加文字等操作了。
canvas=ImageDraw.Draw(img) #设定将要添加文字或绘图的对象,即img中的底图
(三)在图像上添加数字验证码 1、预设验证码的文字样式
#设变量fnt,记录文字样式为simsun字体,大小26fnt=ImageFnt.truetype(‘simsun.ttc’,26)
2、生成五个0~9之间的随机数字组成验证码
可使用fr循环控制,分别产生五个0~9的随机数字,并按一定的间隔添加到底图上。假设第一个字符起始位置在(10,0),后续每隔30写入下一个数字。则生成验证码的语句为:
#生成五个0~9的随机数,str函数的作用是把数字类型转换成字符串类型fr i in range(5): canvas.text((10+i*30,0),str(randint(0,9)),’black’,fnt)
(四)显示和保存图像
img.shw()img.save(‘captcha.jpg’)
完成验证码的添加后,可以使用shw()函数显示图像,用save()函数把图像以文件形式保存起来。
请把上述代码组织成一个完整的程序,并运行程序生成验证码图片。
1、请修改程序captcha.py,以生成5位随机颜色的数字验证码。(提示:修改循环体部分)
fr i in range(5): #生成五个随机颜色的0~9的数字 r=________________ g=_______________ b=_______________ canvas.text((10+i*30,0),str(randint(0~9)),(r,____,____),fnt)
randint(0,255)
2、位声明图片版权,不少作者会在公开的摄影作品中添加水印。请编写程序,对自己的一张照片添上个性化文字(如图2-3-3所示)。[提示:打开现有图片的参考代码是img=Image.pen(“view.jpg”,’r’]
1、导入模块命令‘frm PIL imprt Image’与下列哪个命令都可以导入相同的模块?( ) A、frm ImageB、imprt PIL.Image C、frm PIL D、imprt PIL
2、Image.new的功能是( )图像 A、创建B、裁剪 C、缩放D、保存
3、语句‘canvas.text((100,50),’I lve China’,’green’,ziti)’中‘(100,50)’表示( ) A、图像尺寸 B、文字位置 C、文字内容 D、文字颜色
4、以下说法正确的是( )A、在Pythn中只能用red、blue等控制颜色 B、PIL属于Pythn的标准库C、必须先把图像设定为操作的对象,才能在图像上添加文字 D、用save()函数默认保存的位置是桌面
5、完成表2-3-1的学习评估,并将评估等级填写到“我的成长记录袋”中。
表2-3-1 学习评估表
一、PIL库的安装命令二、Image、ImageDraw、ImageFnt模块的导入命令
初中信息技术粤高教版 (2018)八年级下册*第4课 检测图像中的人脸——0penCV库的应用图文课件ppt: 这是一份初中信息技术粤高教版 (2018)八年级下册*第4课 检测图像中的人脸——0penCV库的应用图文课件ppt,共39页。PPT课件主要包含了新知导入,新知讲解,分析问题,学习新知,一OpenCV库,二分类器,关闭所有窗口,设计算法,cv2imread,cv2imshow等内容,欢迎下载使用。
初中信息技术粤高教版 (2018)八年级下册第二单元 实用程序我来编第2课 绘制函数图象——matplotlib与numpy库的应用示范课课件ppt: 这是一份初中信息技术粤高教版 (2018)八年级下册第二单元 实用程序我来编第2课 绘制函数图象——matplotlib与numpy库的应用示范课课件ppt,共45页。PPT课件主要包含了新知讲解,新知导入,分析问题,学习新知,图2-2-2,图2-2-3,图2-2-4,pyplot模块,二numpy库,设计算法等内容,欢迎下载使用。
粤高教版 (2018)八年级下册第1课 加法心算游戏——random与time模块的应用集体备课ppt课件: 这是一份粤高教版 (2018)八年级下册第1课 加法心算游戏——random与time模块的应用集体备课ppt课件,共38页。PPT课件主要包含了新知导入,新知讲解,分析问题,学习新知,一函数与库,三time模块,圆周率3142,设计算法,t2t1+60,True等内容,欢迎下载使用。