使用 Python 生成类数字字母混合验证码图片
2018-03-04 17:50
573 查看
分析
首先是要生成含有数字字母的字符串然后创建画布,并且随机填充画布的颜色
最后将字符画上去,为了保证画上去的字符不同色,需将这些字符保存为一个列表通过多次画上去,期间要随机设置颜色值
在这里我们通过使用PIL模块来操作图像,random模块进行随机生成
from PIL import Image,ImageDraw,ImageFont,ImageFilter import random import string #混合字符串,可自定义 basic_string = '0123456789'+string.letters+'9876543210' def randColor(): #产生随机颜色 return (random.randint(64,255),random.randint(64,255),random.randint(64,255)) def randChar(): #产生随机数字字母组合列表 return random.sample(basic_string,4)#chr(random.randint(65,90)) def pictureDraw(): height=60 width=240 image=Image.new('RGB',(width,height),(255,255,255)) #白色画布 font=ImageFont.truetype("C:/windows/fonts/Arial.ttf",36) #画笔字体 draw=ImageDraw.Draw(image) #绘画对象 for i in range(width): for j in range(height): draw.point((i,j),fill=randColor()) #随机逐像素填充颜色 for i in range(4): draw.text((60*i+10,19),randChar()[i],font=font,fill=(random.randint(30,120),random.randint(30,120),random.randint(30,120))) #文本绘画 image=image.filter(ImageFilter.BLUR) #产生模糊感 image.save('CAPTCHA.jpg','jpeg') image.show() if __name__=='__main__': pictureDraw()
运行结果如下:
相关文章推荐
- Pyhton每日练习 08 使用 Python 生成类似于下图中的字母+数字验证码图片
- 验证码生成器类,可生成数字、大写、小写、图片字母及三者混合类型的验证码
- 生成验证码(数字字母混合)
- php生成数字字母的验证码图片
- 生成图片形式的数字字母组合验证码
- 使用java Random动态传递位数 生成指定位数的随机字符串-数字字母混合
- 数字和字母组合并生成图片的验证码祥解
- php生成数字字母的验证码图片
- 数字和字母组合并生成图片的验证码祥解
- 验证码图片生成(4位字母与数字结合)
- 如何生成汉字验证码或字母数字混合验证码
- C# 生成四位数字字母混合验证码
- asp.net生成字母和数字混合图形验证码
- 数字和字母组合并生成图片的验证码祥解
- asp.net 生成图形验证码(字母和数字混合)
- 使用Python生成验证码图片
- Python 生成类字母验证码图片
- asp.net生成字母和数字混合图形验证码
- asp.net 生成图形验证码(字母和数字混合)
- php生成数字字母的验证码图片