python在图片写文字,产生随机验证码序列号
2017-09-15 16:04
447 查看
用PS很简单就可以做到,但是如何用Python完成呢?
(PIL Fork) 4.0.0 documentation)
下面介绍今天会用到的模块:The ImageDraw Module,他的功能如下,
支持2D图像
创建绘画对象
基本绘画操作
弧/弦/扇形 chord arc pieslice (bbox, strtAng, endAng)
椭圆 ellipse (bbox)
线段/多段线 line (L) draw.line(((60,60),(90,60), (90,90), (60,90), (60,60))) #draw a square
点 point (xy) #单像素点很小看不清,实际中可用实心小圆代替
多边形 polygon (L) draw.polygon([(60,60), (90,60), (90,90), (60,90)]) #draw a square
矩形 rectangle (bbox) # first coord属于矩形, second coord不属于
文字 text(xy,message,font=None) 绘制文字message,文本区域左上角坐标为xy
drawable.text((10, 10), "Hello", fill=(255,0,0), font=None)
文字大小 textsize(message,font=None) 给定文字message,返回所占像素(width,height)
可选参数
矢量字体支持
效果展示:
可以做到如微信,QQ头像上有多少未接收消息的样子
代码如下:
产生随机4位验证码,或者序列号
产生了5组序列号
代码如下:
一、思路:利用Python强大的图片处理库——Pillow
推荐阅读官方文档(Pillow(PIL Fork) 4.0.0 documentation)
下面介绍今天会用到的模块:The ImageDraw Module,他的功能如下,
支持2D图像
创建绘画对象
基本绘画操作
弧/弦/扇形 chord arc pieslice (bbox, strtAng, endAng)
椭圆 ellipse (bbox)
线段/多段线 line (L) draw.line(((60,60),(90,60), (90,90), (60,90), (60,60))) #draw a square
点 point (xy) #单像素点很小看不清,实际中可用实心小圆代替
多边形 polygon (L) draw.polygon([(60,60), (90,60), (90,90), (60,90)]) #draw a square
矩形 rectangle (bbox) # first coord属于矩形, second coord不属于
文字 text(xy,message,font=None) 绘制文字message,文本区域左上角坐标为xy
drawable.text((10, 10), "Hello", fill=(255,0,0), font=None)
文字大小 textsize(message,font=None) 给定文字message,返回所占像素(width,height)
可选参数
矢量字体支持
效果展示:
可以做到如微信,QQ头像上有多少未接收消息的样子
代码如下:
#coding:utf-8 from PIL import Image, ImageDraw, ImageFont #打开当前目录下nanjing.jpg图片 img = Image.open('nanjing.jpg') #画出这张图片 draw = ImageDraw.Draw(img) #字大小为图小边的16分之一 fontsize = int(min(img.size)/4) #字体样式,ttf是不失真的字 myfont = ImageFont.truetype('C:/windows/fonts/Arial.ttf', size=fontsize) #字体颜色 fillcolor = "#ff0000" width, height = img.size #右上角显示 draw.text((img.size[0]-fontsize,0),'99', font=myfont, fill=fillcolor) img.save('result.jpg','jpeg')
产生随机4位验证码,或者序列号
产生了5组序列号
代码如下:
#coding:utf-8 import string, random #激活码中的字符和数字 field = string.ascii_letters + string.digits #获得4个字母和数字的随机组合 def getRandom(): return "".join(random.sample(field,4)) #把列表中四个数连接起来变成字符串 #生成的每个激活码中有几组:,每组加“-” def concatenate(group): return "-".join([getRandom() for i in range(group)]) #另一种写法 # con = [] # for i in range(group): # con.append(getRandom()) # return "-".join(con) #生成n组激活码,默认一组4个 def generate(n): return [concatenate(4) for i in range(n)] print(generate(5))
相关文章推荐
- 一个产生随机图片验证码的示例
- 随机产生验证码图片---参考代码
- 【wed】wed网页随机产生验证码图片(版本tomcat-8.0.14)
- Delphi 模拟网站验证码(酷,把随机文字写道图片上)
- 一个产生随机图片验证码的示例
- 偶的小收获(关于验证码随机产生图片)
- 重写IHttpHandler接口实现产生随机验证码图片
- 用Python生成随机的中文验证码图片
- python--random模块(产生随机值)、洗牌、验证码应用
- python生成验证码,文字转换为图片
- WEB Service产生随机验证码图片
- wed网页随机产生验证码图片(版本tomcat-8.0.14)
- Python 批量下载验证码图片及切割验证码图片,识别验证码,并以识别的文字重命令验证码
- 产生随机图片,并返回图片内的文字
- 【wed】wed网页随机产生验证码图片(版本tomcat-8.0.14)
- 【java】随机产生4位验证码
- 随机验证图片的产生,asp.net 2.0 c# ---在网页的特定或莫个位置显示图片
- Python3基础 random 产生指定区间的随机整数
- 58-005-1 编写一个产生随机验证码的jsp页面.
- 随机生成验证码图片并将之输出为一个png文件。