Python 生成登录验证码图片 - Go语言中文社区

Python 生成登录验证码图片


一、开发思路

1.创建画像、绘图工具
2.生成随机码、随机颜色
3.绘图工具填充整个画布
4.绘图工具写入随机码

二、思路实践

1、创建画像、绘图工具

from PIL import Image,ImageDraw
#创建240*60的画布
image=Image.new('RGB',(240,60),(255,255,255))
#创建画笔
draw=ImageDraw(image)
#画布保存
image.save('test.jpg')

2、生成随机码、随机颜色

#随机字母码
def ranchar():
    return chr(random.randint(65,90))
#随机数字码
def ranint():
    return  str(random.randint(0,9))
choice([ranint(),ranchar()]) #随机选择字母或数字

#随机颜色RBG
def ranbgcolor():
    return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))

3、绘图工具填充整个画布

for x in range(width):
    for y in range(height):
        draw.point((x,y),fill=ranbgcolor())

4、绘图工具写入随机码

#创建随机4个字符
for i in range(4):
    draw.text((60*i+10,10),choice([ranint(),ranchar()]))

三、代码

效果图:
在这里插入图片描述

废话不多说,直接上代码

# -*- coding:utf-8 -*-
#@Time    :2021/2/2 15:04
#@Author  :Came Deng
#@Project :practical
#@File    :verify_code
#@description    :生成验证码图片
import random
from PIL import Image,ImageDraw,ImageFont,ImageFilter
from random import choice
#随机字体颜色
def ranfontcolor():
    return (random.randint(64,254),random.randint(50,254),random.randint(20,254))
#随机背景色
def ranbgcolor():
    return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))
#随机字母码
def ranchar():
    return chr(random.randint(65,90))
#随机数字码
def ranint():
    return  str(random.randint(0,9))

#240*60
width=60*4
height=60
#创建画像image对象
image=Image.new('RGB',(width,height),(255,255,255))
#字体 *(根据本地实际ttf文件路径做修改)
font=ImageFont.truetype('Arial.ttf', 36)
#创建绘图工具draw对象
draw=ImageDraw.ImageDraw(image)
#创建背景点
for x in range(width):
    for y in range(height):
        draw.point((x,y),fill=ranbgcolor())
#创建随机4个字符
for i in range(4):
    draw.text((60*i+10,10),choice([ranint(),ranchar()]),font=font,fill=ranfontcolor())
#图片模糊
image.filter(ImageFilter.BLUR)
image.save('test.jpg')
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_42418452/article/details/114323095
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢