一、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()