Python使用PIL模块生成随机验证码

Python使用PIL模块生成随机验证码,第1张

概述Python生成随机验证码,需要使用PIL模块,具体内容如下安装:pip3installpillow基本使用

Python生成随机验证码,需要使用PIL模块,具体内容如下

安装:

pip3 install pillow

基本使用

1. 创建图片

from PIL import Imageimg = Image.new(mode='RGB',size=(120,30),color=(255,255,255)) # 在图片查看器中打开# img.show() # 保存在本地with open('code.png','wb') as f: img.save(f,format='png')

2. 创建画笔,用于在图片上画任意内容

img = Image.new(mode='RGB',255))draw = ImageDraw.Draw(img,mode='RGB')

3. 画点

img = Image.new(mode='RGB',mode='RGB')# 第一个参数:表示坐标# 第二个参数:表示颜色draw.point([100,100],fill="red")draw.point([300,300],fill=(255,255))

4. 画线

img = Image.new(mode='RGB',mode='RGB')# 第一个参数:表示起始坐标和结束坐标# 第二个参数:表示颜色draw.line((100,100,300),fill='red')draw.line((100,300,100),255))

5. 画圆

img = Image.new(mode='RGB',mode='RGB')# 第一个参数:表示起始坐标和结束坐标(圆要画在其中间)# 第二个参数:表示开始角度# 第三个参数:表示结束角度# 第四个参数:表示颜色draw.arc((100,90,fill="red")

6. 写文本

img = Image.new(mode='RGB',mode='RGB')# 第一个参数:表示起始坐标# 第二个参数:表示写入内容# 第三个参数:表示颜色draw.text([0,0],'python',"red")

7. 特殊字体文字

img = Image.new(mode='RGB',mode='RGB')# 第一个参数:表示字体文件路径# 第二个参数:表示字体大小Font = ImageFont.truetype("kumo.ttf",28)# 第一个参数:表示起始坐标# 第二个参数:表示写入内容# 第三个参数:表示颜色# 第四个参数:表示颜色draw.text([0,"red",Font=Font)

图片验证码

import randomdef check_code(wIDth=120,height=30,char_length=5,Font_file='kumo.ttf',Font_size=28):code = []img = Image.new(mode='RGB',size=(wIDth,height),mode='RGB')def rndChar():"""生成随机字母 :return:"""return chr(random.randint(65,90))def rndcolor():"""生成随机颜色:return:"""return (random.randint(0,255),random.randint(10,random.randint(64,255))# 写文字Font = ImageFont.truetype(Font_file,Font_size)for i in range(char_length):char = rndChar()code.append(char)h = random.randint(0,4)draw.text([i * wIDth / char_length,h],char,Font=Font,fill=rndcolor())# 写干扰点for i in range(40):draw.point([random.randint(0,wIDth),random.randint(0,height)],fill=rndcolor())# 写干扰圆圈for i in range(40):draw.point([random.randint(0,fill=rndcolor())x = random.randint(0,wIDth)y = random.randint(0,height)draw.arc((x,y,x + 4,y + 4),fill=rndcolor())# 画干扰线for i in range(5):x1 = random.randint(0,wIDth)y1 = random.randint(0,height)x2 = random.randint(0,wIDth)y2 = random.randint(0,height)draw.line((x1,y1,x2,y2),fill=rndcolor())img = img.filter(ImageFilter.EDGE_ENHANCE_MORE)return img,''.join(code)if __name__ == '__main__':# 1. 直接打开# img,code = check_code()# img.show()# 2. 写入文件# img,code = check_code()# with open('code.png','wb') as f:# img.save(f,format='png')# 3. 写入内存(python3)# from io import BytesIO# stream = BytesIO()# img.save(stream,'png')# stream.getvalue()# 4. 写入内存(Python2)# import StringIO# stream = StringIO.StringIO()# img.save(stream,'png')# stream.getvalue()pass

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Python使用PIL模块生成随机验证码全部内容,希望文章能够帮你解决Python使用PIL模块生成随机验证码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1201224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存