一、PIL库基本操作
from PIL import Image,ImageFilter #安装方法 pip install pillow image_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.size print(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 random import 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 =60 image=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()