题目链接:https://github.com/Show-Me-the-Code/show-me-the-code
代码github链接:https://github.com/wjsaya/python_spider_learn/tree/master/python_daily
个人博客地址:https://wjsaya.github.io
第 0010 题: 使用 Python 生成类似于下图中的字母验证码图片

思路:

  1. 根据指定位数获取随机验证码字符串:直接用random模块即可。
  2. 把字符串转换成图片:通过PIL库画图。

代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @Author:  wjsaya(http://www.wjsaya.top)
# @Date:    2018-08-10 00:01:32
# @Last Modified by:    wjsaya(http://www.wjsaya.top)
# @Last Modified time:  2018-08-10 00:46:47 import random
import string
from PIL import Image, ImageFont, ImageDraw, ImageFilterdef get_str():'''获取单个随机字符string.digits + string.ascii_letters = 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'''return random.choice(string.digits + string.ascii_letters)def get_color():'''返回颜色元组'''return (random.randint(64,200),random.randint(64,200),random.randint(64,200))def get_pic(num=4):'''生成指定验证码个数的验证码图片,默认为4个,每个的大小均为60*60'''heigh = 60width = heigh * numimage = Image.new('RGB', (width, heigh), (255, 255, 255))draw = ImageDraw.Draw(image)font = ImageFont.truetype('ariblk.ttf',44)# 创建图片,画布,以及字体对象for  x in range(width):for y in range(heigh):draw.point((x,y),fill=get_color())# 画布随机加噪点for t in range(num):draw.text((60 * t + 10, 0), get_str(), font=font, fill=get_color())# 随机获取num个字符,使用指定字体,使用随机颜色image = image.filter(ImageFilter.SMOOTH)# 模糊处理图片image.save('vercode.png')if __name__ == '__main__':num = 4get_pic(num)

效果图:

[python每日一练]--0010:生成验证码图片相关推荐

  1. 用python实现生成验证码图片

    验证码在网络开发应用中非常重要,广泛应用于用户注册.登录.留言.购物和网络支付中,可以有效阻止恶意用户频繁提交非法数据.图片验证码是比较传统的验证码方式,图片除了经过平移.旋转.错切.缩放等基本变换的 ...

  2. Python 生成验证码图片

    使用pillow生成验证码图片 其中的Arial.ttf可以百度下载 from PIL import Image,ImageDraw,ImageFont,ImageFilter import rand ...

  3. python 编程一日一练-Python每日一练0022

    问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...

  4. Java Web学习总结(6)——通过Servlet生成验证码图片

    2019独角兽企业重金招聘Python工程师标准>>> 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawIma ...

  5. PIL应用之生成验证码图片

    PIL应用之生成验证码图片 - 残阳似血的博客 PIL应用之生成验证码图片 位于分类 我爱Python 现在的网页中,为了防止机器人提交表单,图片验证码是很常见的应对手段之一.这里就不详细介绍了,相信 ...

  6. python每日一练名片管理程序_Python每日一练0022

    问题 你想在一个文件里每次读入固定大小的字节,比如每次读入4个字节并转成int,或者每次读入x个字节并进行结构化,例如: l = [5, 2, 4, 1, 2, 4, 5, 6, 8] with op ...

  7. Python使用Pillow(PIL)库实现验证码图片

    Python使用Pillow(PIL)库实现验证码图片 Pillow库有很多用途,本文使用Pillow来生成随机的验证码图片. Pillow的用法参考:https://blog.csdn.net/we ...

  8. Python每日一练0023

    问题 如何判断一个文件是否存在 解决方案 这个问题可以分成几类问题 如果这里的文件指的是文件或目录,我们可以用os.path.exists()方法 >>> import os > ...

  9. 转: 通过Servlet生成验证码图片

    孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(九)-- 通过Servlet生成验证码图片 一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedIma ...

最新文章

  1. 用了这么多年 Spring Boot 你知道他爹有多大背景吗?
  2. 中国一线城市住宅地价同比增幅连续8个季度收窄
  3. java实现迷宫算法--转
  4. HTML5实现刮奖效果
  5. python url中传递中文_Python编程:URL网址链接中的中文编码与解码
  6. springmvc与mybatis整合之实现商品列表
  7. Android 官方命令深入分析之android
  8. Idea运行报错Error running ‘Application‘: Command line is too long的解决方法
  9. 转:oracle常见重要视图-v$sql,v$sql_plan,v$sqltext,v$sqlarea,v$sql_plan_statistcs
  10. NLPIR系统的中文语义分析模式介绍
  11. vue移动端日历显示查看每日详情列表
  12. 建行网银盾无法识别怎么办
  13. 【翻译】YOLOX: Exceeding YOLO Series in 2021
  14. usb驱动开发21——驱动生命线
  15. win10计算机打印机共享怎么设置方法,win10打印机共享怎么设置 win10打印机共享设置步骤介绍...
  16. 字节终面:说说Kakfa副本状态机的实现原理?
  17. mysql最优库容_一种增加已达到设计库容的尾矿库存储量的方法
  18. 一份好的简历需要包含的内容(程序员)
  19. R计算 地理集中指数
  20. C# 子线程中访问主线程中的控件

热门文章

  1. 百度公司的笔试题目等
  2. 计算机网络技术无线自组网,什么是自组网通信
  3. Map对象转换为一个实体类对象
  4. verifiable secret sharing可验证的秘密共享
  5. 架构修炼之道 | 一个传统网关系统有几种 “死” 法
  6. 2023,有哪些还不错的国企?
  7. 马走日问题,在5*5的棋盘中,马只能走日字。马从位置(0,0)处出发,把棋盘的每一格都走一次,且只走一次。找出所有路径。(C语言实现)
  8. 【英语语法入门】 第17讲 不定量表达法 (3)
  9. 在游戏中看状态机与状态模式
  10. 噶计算机,计算机模拟题目..doc