Python的PIL库实现验证码图片

本文是基于廖大官方网站Python3.5PIL节所写。来源廖雪峰的官方网站 。在此基础上增加了数字、汉字、字母。
代码如下:
#!/uer/bin/env python
#-*- coding:utf-8 -*-
#声明
from PIL import Image,ImageFilter,ImageDraw,ImageFont
import random

#产生随机汉字、字母和数字
def rndChar():
     #产生0-9随机数字
     numChr = str(random.randint(0,9))
     #产生大写字母A-Z,对比ASK码
     letChr = chr(random.randint(65,90))
     #产生随机的一个汉字
     chChr =random.choice("中华文化博大精深")
     #随机返回三种类型之一
     return random.choice((numChr,letChr,chChr))

 #得到随机的颜色,0-255 RGB颜色表
def rndColor():
    return (random.randint(0,255),random.randint(0,255),random.randint(0,255))


#定义输出图片大小
width = 240
height = 60
#定义初始白色图片
image = Image.new('RGB',(width,height),(255,255,255))
#创建Font对象,字体
font = ImageFont.truetype('C:\Windows\Fonts\simsun.ttc',40)

#创建Draw对象,即创建一个可以对Image操作的对象
draw = ImageDraw.Draw(image)
#在图片中填充随机像素
for x in range(width):
    for y in range(height):
        draw.point((x,y),fill=rndColor())

#在图像中输出文字
for t in range(4):
    draw.multiline_text((60*t+10,10),rndChar(),font=font,fill=rndColor2())

#滤镜模糊
image = image.filter(ImageFilter.MinFilter)
image.save('code.jpeg','jpeg')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值