博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
制作简单图片验证码
阅读量:5081 次
发布时间:2019-06-13

本文共 1793 字,大约阅读时间需要 5 分钟。

一、PIL库基本操作

from PIL import Image,ImageFilter  #安装方法 pip install pillowimage_file =Image.open('pikaqiu.jpg')image_file = image_file.convert('1')  #更改图像模式image_file.show()   #打开图片,显示图片image_file.save('qiuqi2.jpg')     #改名+另存为#图片缩放im=Image.open('pikaqiu.jpg')#获取尺寸w,h =im.sizeprint(w,h)# im.thumbnail((w//2,h//2))im=im.filter(ImageFilter.BLUR)  #图片模糊处理im.show()

二、开始制作验证码

from PIL import Image,ImageFilter,ImageFont,ImageDraw   #ImageFont 导入字体颜色  ImageDraw新建绘图对象import randomimport string#随机字母def rndChar():    return chr(random.randint(65,90))  #整数对应的ascii码A-Z的范围#随机字母和数字def getrandl(num,many):   #num 代表位数  ,many 代表个数    for x in range(many):        s=''        for i in range(num):            n = random.randint(1,2) #n=1 生成数字 n =2 生成字母            if n ==1:                numb =random.randint(0,9)                s += str(numb)            else:                s+=str(random.choice(string.ascii_letters))    return s#随机生成RGB值def rndColor():    return(random.randint(64,255),random.randint(64,255),random.randint(64,255))#随机背景色def rndColor2():    return(random.randint(32,127),random.randint(32,127),random.randint(32,127))width = 60*4  #图像宽度  *4是四个字母height =60image=Image.new('RGB',(width,height),(255,255,255))#最后的元组是RGB每个的值# font =ImageFont.truetype('Monaco.ttf',36)  #指定字体和大小   font =ImageFont.truetype('Monaco.ttf',36)报错显示没有找到这个字体#解决方法:到C:\Windows\Fonts下,复制喜欢的字体到py文件下font =ImageFont.truetype('tahoma.ttf',36)# 添加画笔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.text((60*t+10,10),getrandl(1,4),font=font,fill=rndColor2())   #60*x+10是写第一个字母起笔位置为从左往右10长度,10是从上往下的高度,这样开始写第一个 字母#加上模糊处理image=image.filter(ImageFilter.BLUR)image.show()

 

转载于:https://www.cnblogs.com/zhengyuli/p/10848280.html

你可能感兴趣的文章
实验五 Java网络编程及安全
查看>>
32位与64位 兼容编程
查看>>
iframe父子页面通信
查看>>
ambari 大数据安装利器
查看>>
java 上传图片压缩图片
查看>>
magento 自定义订单前缀或订单起始编号
查看>>
ACM_拼接数字
查看>>
计算机基础作业1
查看>>
Ubuntu 深度炼丹环境配置
查看>>
C#中集合ArrayList与Hashtable的使用
查看>>
从一个标准 url 里取出文件的扩展名
查看>>
map基本用法
查看>>
poj-1163 动态规划
查看>>
Golang之interface(多态,类型断言)
查看>>
Redis快速入门
查看>>
BootStrap---2.表格和按钮
查看>>
Linear Algebra lecture 2 note
查看>>
CRC计算模型
查看>>
Ajax之404,200等查询
查看>>
Aizu - 1378 Secret of Chocolate Poles (DP)
查看>>