• 图片验证码


    python -m pip install --upgrade pip 升级pip
    import
    random ##随机模块,可以产生随机数 from PIL import Image,ImageDraw,ImageFont,ImageFilter ''' PIL 需要通过pip install PIL 来安装 Image 负责图片处理 ImageDraw 负责处理画笔 ImageFont 负责处理字体 ImageFilter 负责处理滤镜 ''' #项目的思路: #1.定义一张图片 img = Image.new("RGB",(150,50),(255,255,255)) """ 第一个参数:代表我们采用的颜色 第二个参数:代表图片大小 第三个参数:具体图片的颜色 """ #2.创建画笔 draw = ImageDraw.Draw(img) #3.绘制线条和点 #绘制线 for i in range(random.randint(1,10)): draw.line( #在绘制线条时有个特色:每条线都有两个点,每个点靠X,y两个值来确定位置 [ (random.randint(1,150),random.randint(1,150)), (random.randint(1, 150), random.randint(1, 150)) ], fill = (0,0,0) ) #绘制点 for i in range(1000): draw.point( [ random.randint(1,150), random.randint(1,150) ], fill = (0,0,0) ) #4.绘制我们的文字 #我们的文字时随机的 #一定的数字 #定义我们要生成的随机数字和字母 font_list = list("qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAMNBVCXZ0123456789") c_chars = "".join(random.sample(font_list,5)) #绘制字体 font = ImageFont.truetype("simsun.ttc",32) draw.text((5,5),c_chars,font = font,fill = "green") """ 第一个参数:代表文字的位置,距离上和左的距离 第二个参数:代表文字和内容 第三个参数:字体和颜色 """ #random.sample是在制定的列表当中随机的取出指定个元素 #5.定义扭曲的参数 params = [ 1-float(random.randint(1,2))/100, 0, 0, 0, 1-float(random.randint(1,2))/100, float(random.randint(1,2))/50, 0.001, float(random.randint(1,2))/50 ] #6.使用滤镜 #添加滤镜 img = img.transform((150,50),Image.PERSPECTIVE,params) """ 第一个参数:扭曲的范围, 第二个参数:扭曲的样式 第三个参数:扭曲的参数 """ #进行扭曲 img = img.filter(ImageFilter.EDGE_ENHANCE_MORE) #调用 img.show()
    以上内容作为课堂笔记,如有雷同,请联系于我
  • 相关阅读:
    Windows下获取逻辑cpu数量和cpu核数量
    QtScript, QML, Quick1, Quick2, Declarative 之间的关系
    将QT开发的界面程序封装成DLL,在VC中成功调用(必须有消息循环,所以使用了QTWinmigrate,附CSDN可下载的Demo)
    QPixmap的缓冲区
    Qt+QZXing编写识别二维码的程序
    ASP.NET 5:依赖注入
    angularJS之使用指令封装DOM操作
    Windows 10技术布局,谈微软王者归来
    Microsoft dotnetConf 2015
    Net社区虚拟大会
  • 原文地址:https://www.cnblogs.com/ArtisticMonk/p/8933867.html
Copyright © 2020-2023  润新知