您的位置:首页 > 编程语言 > Python开发

Python 练习册,每天一个小程序-第 0010 题

2018-02-26 01:59 337 查看

第 0010 题: 使用 Python 生成类似于下图中的字母验证码图片

Answer:

-
这道题,刚拿到一脸懵逼,看了下网上的教程
总结一下,这是对0000题和0005题的一个加深应用,本质是熟悉pillow库
首先,你先要创建一个与图例同样大小的空白画布



接下来操作与第0000题类似
规定字体的款式大小,然后对画布进行填充
每个像素点用随机颜色填充,然后将随机生成验证码写在画布上(采用随机颜色)
最后在做模糊化处理



-
最后如果不用模糊化处理的效果可以自己尝试
关于随机颜色完全可以用(0,255),不过会让你有色盲的错觉...
随机生成验证码沿用了之前生成激活码的思想
-
代码实现from PIL import Image,ImageFont,ImageDraw,ImageFilter
import os
import random
import string

def rndcolor():
return (random.randint(64,255),random.randint(64,255),random.randint(64,255))
def fontcolor():
return (random.randint(32,127),random.randint(32,127),random.randint(32,127))
def rndfont():
s=string.ascii_letters+string.digits
r=random.sample(s,4)
return r
os.chdir(r"C:\Users\Alex.hasee-PC\Desktop\pythonprogram")
img=Image.new('RGB',(240,60),(255,255,255))
font=ImageFont.truetype(r"C:/windows/fonts/Arial.ttf",40)
draw=ImageDraw.Draw(img)
for x in range(240):
for y in range(60):
draw.point((x,y),fill=rndcolor())
print rndfont()
for i,f in enumerate(rndfont()):
draw.text((60*i+10,10),f,font=font,fill=fontcolor())
img=img.filter(ImageFilter.BLUR)
img.show()
img.save('0010.jpg','jpeg')-
github
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: