代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Python
】
随机生成中文验证码
作者:
Dezai.CN
/ 发布于
2012/11/21
/
769
# -*- coding: utf-8 -*- import Image,ImageDraw,ImageFont import random import math, string ? class RandomChar(): ? """用于随机生成汉字""" ? @staticmethod ? def Unicode(): ? ? val = random.randint(0x4E00, 0x9FBF) ? ? return unichr(val) ? ? @staticmethod ? def GB2312(): ? ? head = random.randint(0xB0, 0xCF) ? ? body = random.randint(0xA, 0xF) ? ? tail = random.randint(0, 0xF) ? ? val = ( head << 8 ) | (body << 4) | tail ? ? str = "%x" % val ? ? return str.decode('hex').decode('gb2312') ? class ImageChar(): ? def __init__(self, fontColor = (0, 0, 0), ? ? ? ? ? ? ? ? ? ? ?size = (100, 40), ? ? ? ? ? ? ? ? ? ? ?fontPath = 'wqy.ttc', ? ? ? ? ? ? ? ? ? ? ?bgColor = (255, 255, 255), ? ? ? ? ? ? ? ? ? ? ?fontSize = 20): ? ? self.size = size ? ? self.fontPath = fontPath ? ? self.bgColor = bgColor ? ? self.fontSize = fontSize ? ? self.fontColor = fontColor ? ? self.font = ImageFont.truetype(self.fontPath, self.fontSize) ? ? self.image = Image.new('RGB', size, bgColor) ? ? def rotate(self): ? ? self.image.rotate(random.randint(0, 30), expand=0) ? ? def drawText(self, pos, txt, fill): ? ? draw = ImageDraw.Draw(self.image) ? ? draw.text(pos, txt, font=self.font, fill=fill) ? ? del draw ? ? def randRGB(self): ? ? return (random.randint(0, 255), ? ? ? ? ? ?random.randint(0, 255), ? ? ? ? ? ?random.randint(0, 255)) ? ? def randPoint(self): ? ? (width, height) = self.size ? ? return (random.randint(0, width), random.randint(0, height)) ? ? def randLine(self, num): ? ? draw = ImageDraw.Draw(self.image) ? ? for i in range(0, num): ? ? ? draw.line([self.randPoint(), self.randPoint()], self.randRGB()) ? ? del draw ? ? def randChinese(self, num): ? ? gap = 5 ? ? start = 0 ? ? for i in range(0, num): ? ? ? char = RandomChar().GB2312() ? ? ? x = start + self.fontSize * i + random.randint(0, gap) + gap * i ? ? ? self.drawText((x, random.randint(-5, 5)), RandomChar().GB2312(), self.randRGB()) ? ? ? self.rotate() ? ? self.randLine(18) ? ? def save(self, path): ? ? self.image.save(path)
试试其它关键字
随机生成中文验证码
同语言下
.
比较两个图片的相似度
.
过urllib2获取带有中文参数的url内容
.
不下载获取远程图片的宽度和高度及文件大小
.
通过qrcode库生成二维码
.
通过httplib发送GET和POST请求
.
Django下解决小文件下载
.
遍历windows的所有窗口并输出窗口标题
.
根据窗口标题调用窗口
.
python 抓取搜狗指定公众号
.
pandas读取指定列
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3