图片验证码制作(附源码)

简介: 图片验证码制作(附源码)
from random import randint , choice
from PIL import Image , ImageDraw , ImageFont
# 制作随机验证码:数字,大小写字母
def get_random_code():
    # 随机数字
    number = str(randint(0,9))
    # 随机大写字母
    upper = chr(randint(65 , 90))
    # 随机小写字母
    lower = chr(randint(97 , 122))
    # 在大小字母和数字中随机获取一个
    code = choice([number , upper , lower])
    return code
# 获取随机颜色
def get_color():
    return (randint(0,255),randint(0,255),randint(0,255))
# 制作图片
def create_img():
    # 创建图片对象
    img = Image.new(mode='RGB' , size=(150 , 30) , color=get_color())
    # 创建画笔工具
    draw = ImageDraw.Draw(img)
    # 制作图片噪点
    # 噪点
    for i in range(70):
        # point([xy:图片坐标] , fill颜色)
        draw.point([randint(0,150) , randint(0,30)] , fill=get_color())
    # 噪线
    for i in range(10):
        # line([xy:起始和终点图片坐标] , fill颜色)
        draw.line([randint(0, 150), randint(0, 30),randint(0, 150), randint(0, 30)], fill=get_color())
    # 弧线
    x = randint(0, 150)
    y = randint(0, 30)
    for i in range(10):
        # line([xy:起始和终点图片坐标] , fill颜色)
        draw.arc([x, y, x + 2 , y + 2], 0, 90,fill=get_color())
    # 设置字体 , 导入字体文件, 设置字体大小
    font = ImageFont.truetype('fonts/Georgia.ttf' , 24)
    # 生成验证码
    for i in range(5):
        c = get_random_code()
        # 将获取到的验证码写如到图片中
        draw.text((10+30*i , 2) , text=c , fill=get_color() , font=font)
    # 图片保存成为文件
    f = open('yzm.png' , 'wb')
    # 将制作好的图片保存
    img.save(f , format='png')
    f.close()
create_img()


相关文章
|
1月前
|
人工智能
怎么用Midjourney制作表情包
怎么用Midjourney制作表情包
81 0
|
1月前
|
数据安全/隐私保护
炫酷的生日快乐网页 【附带源码】
炫酷的生日快乐网页 【附带源码】
37 4
|
1月前
如何利用 HBuilderX 制作图文混排的网页
如何利用 HBuilderX 制作图文混排的网页
44 3
|
1月前
|
前端开发
前端知识笔记(二十)———简易弹窗制作
前端知识笔记(二十)———简易弹窗制作
33 0
|
9月前
uniapp图片上传制作
uniapp图片上传制作
37 0
|
前端开发
仿王者荣耀网页-前端网页技术设计完整精美源码HTML+CSS+JS
仿王者荣耀网页-前端网页技术设计完整精美源码HTML+CSS+JS
359 0
仿王者荣耀网页-前端网页技术设计完整精美源码HTML+CSS+JS
|
小程序
【Axure教程】用中继器制作移动端图片上传效果
【Axure教程】用中继器制作移动端图片上传效果
【Axure教程】用中继器制作移动端图片上传效果
|
移动开发 前端开发 JavaScript
技术汇总:第十一章:生成二维码
技术汇总:第十一章:生成二维码
115 0
|
小程序 前端开发 开发者
Hbuilder中微信小程序上传多图的案例分享
Hbuilder中微信小程序上传多图的案例分享
Hbuilder中微信小程序上传多图的案例分享
|
移动开发 开发者 HTML5
制作一个表白网页|学习笔记
快速学习制作一个表白网页
111 0
制作一个表白网页|学习笔记