位置: IT常识 - 正文
推荐整理分享Python脚本绘制验证码(python 脚本编写),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:用python编写脚本,如何用python做脚本,python脚本怎么用,python 脚本制作,python制作脚本教程,python 脚本制作,python 脚本制作,pythoni脚本,内容如对您有帮助,希望把文章链接给更多的朋友!
在Python中有个强大的绘图库pil,可以实现验证码的绘制功能。
PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。
由于PIL仅支持到Python 2.7,加上年久失修,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,支持最新Python 3.x,又加入了许多新特性,因此,我们可以直接安装使用Pillow。
#-*-coding:utf-8-*-#导入三个模块importImage,ImageDraw,ImageFontimportrandomimportmath'''基本功能'''#图片宽度width=100#图片高度height=40#背景颜色bgcolor=(255,255,255)#生成背景图片image=Image.new('RGB',(width,height),bgcolor)#加载字体font=ImageFont.truetype('FreeSans.ttf',30)#字体颜色fontcolor=(0,0,0)#产生draw对象,draw是一些算法的集合draw=ImageDraw.Draw(image)#画字体,(0,0)是起始位置draw.text((0,0),'1234',font=font,fill=fontcolor)#释放drawdeldraw#保存原始版本image.save('1234_1.jpeg')'''演示扭曲,需要新建一个图片对象'''#新图片newImage=Image.new('RGB',(width,height),bgcolor)#load像素newPix=newImage.load()pix=image.load()offset=0foryinrange(0,height):offset+=1forxinrange(0,width):#新的x坐标点newx=x+offset#你可以试试如下的效果#newx=x+math.sin(float(y)/10)*10ifnewx<width:#把源像素通过偏移到新的像素点newPix[newx,y]=pix[x,y]#保存扭曲后的版本newImage.save('1234_2.jpeg')'''形变一下'''#x1=ax+by+c#y1=dx+ey+fnewImage=image.transform((width+30,height+10),Image.AFFINE,(1,-0.3,0,-0.1,1,0))newImage.save('1234_3.jpeg')'''画干扰线,别画太多,免得用户都看不清楚'''#创建draw,画线用draw=ImageDraw.Draw(newImage)#线的颜色linecolor=(0,0,0)foriinrange(0,15):#都是随机的x1=random.randint(0,width)x2=random.randint(0,width)y1=random.randint(0,height)y2=random.randint(0,height)draw.line([(x1,y1),(x2,y2)],linecolor)#保存到本地newImage.save('1234_4.jpeg')上一篇:phpcms后台显示验证码错误怎么办(phpcms使用教程)
下一篇:百度编辑器ueditor的高亮代码自动适应设备宽度及自动换行(百度编辑器使用方法)
友情链接: 武汉网站建设