python图像处理-生成随机验证码
前面说了PIL库,还说了图片的缩放、旋转和翻转。现在说下网站上常用的随机验证码的生成。参考网站:https://www.liaoxuefeng.com/wiki/1016959663602400/1017785454949568
需要用到3个库:ImageDraw 生成图片,ImageFont字体,ImageFilter图像滤波
ImageDraw模块提供了图像对象的简单2D绘制。用户可以使用这个模块创建新的图像,注释或润饰已存在图像,为web应用实时产生各种图形。可参考:https://blog.csdn.net/wuguangbin1230/article/details/80348504
ImageFont模块定义了相同名称的类,即ImageFont类。这个类的实例存储bitmap字体,用于ImageDraw类的text()方法,可以参考: https://blog.csdn.net/icamera0/article/details/50762050
图像滤波具体可参考:https://blog.csdn.net/FloatDreamed/article/details/79015551
from PIL import Image,ImageDraw,ImageFont,ImageFilter
# ImageDraw 生成图片,ImageFont字体,ImageFilter图像滤波
import random #随机字母
def rndChar():
return chr(random.randint(65,90)) #随机颜色
def rndColor():
return (random.randint(64,255),random.randint(64,255),random.randint(64,255))
def rndColor2():
return (random.randint(32,127),random.randint(32,127),random.randint(32,127))
width=60*4
height=60
image =Image.new('RGB',(width,height),(255,255,255)) #生成空白图
image.show()
#创建FONT对象
font = ImageFont.truetype('C:/Windows/Fonts/Arial.ttf',36) #创建draw对象
draw=ImageDraw.Draw(image) #填充每个像素
for x in range(width):
for y in range(height):
draw.point((x,y),fill=rndColor()) #输出文字
for t in range(4):
draw.text((60*t+10,10),rndChar(),font=font,fill=rndColor2()) image=image.filter(ImageFilter.BLUR) #BLUR:模糊滤波,CONTOUR:轮廓滤波,DETAIL:细节滤波,EMBOSS:浮雕滤波
image.save('code1.jpeg','jpeg')
image.show() 运行后生成结果
去掉滤波后
python图像处理-生成随机验证码的更多相关文章
- Python 生成随机验证码
Python生成随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 fro ...
- Python生成随机验证码
Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1.创建图片 from PIL import Image img = Image.new(m ...
- Python使用PIL模块生成随机验证码
PIL模块的安装 pip3 install pillow 生成随机验证码图片 import random from PIL import Image, ImageDraw, ImageFont fro ...
- pillow实例 | 生成随机验证码
1 PIL(Python Image Library) PIL是Python进行基本图片处理的package,囊括了诸如图片的剪裁.缩放.写入文字等功能.现在,我便以生成随机验证码为例,讲述PIL的基 ...
- Java生成随机验证码
package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- C#生成随机验证码例子
C#生成随机验证码例子: 前端: <tr> <td width=" align="center" valign="top"> ...
- Django中生成随机验证码(pillow模块的使用)
Django中生成随机验证码 1.html中a标签的设置 <img src="/get_validcode_img/" alt=""> 2.view ...
- struts2生成随机验证码图片
之前想做一个随机验证码的功能,自己也搜索了一下别人写的代码,然后自己重新用struts2实现了一下,现在将我自己实现代码贴出来!大家有什么意见都可以指出来! 首先是生成随机验证码图片的action: ...
- python模块之PIL模块(生成随机验证码图片)
PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 ...
随机推荐
- JDK1.8为什么废弃永久代【一篇就够】[z]
https://blog.csdn.net/sjmz30071360/article/details/89456177 (Metaspace) 1.背景 2.为什么废弃永久代(PermGen) 3.深 ...
- mysql 松散索引与紧凑索引扫描(引入数据结构)
这一篇文章本来应该是放在 mysql 高性能日记中的,并且其优化程度并不高,但考虑到其特殊性和原理(索引结构也在这里稍微讲一下) 一,mysql 索引结构 (B.B+树) 要问到 mysql 的索引用 ...
- C++typedef的详细用法
转自知乎的一段解释: 作者:知乎用户链接:https://www.zhihu.com/question/29798061/answer/144423125来源:知乎著作权归作者所有.商业转载请联系作者 ...
- DOTS学习资源
以下是一些面向数据的资源,可以是Unity或我们已经验证过的外部资源.我们将包括外部资源,我们认为这些外部资源能够很好地理解面向数据的设计并包含高质量的信息(在贡献时). 注意:由于Unity Dat ...
- curl and wget
写在前面: a. 对比curl 和 wget 的相同和不同点 来记忆 a-1 curl url 直接将请求内容输出到标准输出. 如果下载不是瞬时间完成,会显示下载进度条,如果向取消,加-s : w ...
- 【POJ - 3685】Matrix(二分)
Matrix Descriptions 有一个N阶方阵 第i行,j列的值Aij =i2 + 100000 × i + j2 - 100000 × j + i × j,需要找出这个方阵的第M小值. In ...
- 解决windows server 2019远程桌面许可证问题
解决远程桌面许可证问题,你的远程桌面许可证出现问题,你的会话将在60分钟后断开. 最近装了台windows server 2019服务器做远程桌面连接,也安装了远程桌面许可证,但客户端远程连接时出现你 ...
- day22 subprocess、configeparser、表格操作模块
今日内容: 1.configparser模块的使用 2.subprocess模块的使用 3.表格处理模块 xlrd模块 xlwt模块 1.configparser模块 configparser模块是用 ...
- [转帖]传输层安全协议TLS 1.3 RFC 8446使互联网更快、更安全
传输层安全协议TLS 1.3 RFC 8446使互联网更快.更安全 2018-08-12 11:38:19作者:LINUX人稿源:开源社区 https://ywnz.com/linuxyffq/261 ...
- inxi 查看国产服务器的硬件配置信息
下载inxi 查看国产服务器的信息 https://codeload.github.com/smxi/inxi/tar.gz/3.0.35-1 注意查看命令是 ./inxi -F 2. 直接是二进制包 ...