# -*- 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)

python生成随机码_python生成随机验证码(中文验证码)示例相关推荐

  1. 用Python生成随机的中文验证码图片

    大家都在 Python论坛里讨论.交流,你还在等什么!赶快加入! 在登录很多网站的时候,他们已经不在使用简单的英文和数字的验证码,为了防止恶心注册和群发软件的侵袭,现在都开始使用中文的验证码了. 今天 ...

  2. 大乐透python预测程序_Python生成随机验证码,大乐透号码

    随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__': check_code = "" # ...

  3. python随机生成字符串_python生成随机数、随机字符串

    python生成随机数.随机字符串 import random import string # 随机整数: print random.randint(1,50) # 随机选取0到100间的偶数: pr ...

  4. python创建窗体_python生成窗口

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 2.python生成目录树上述 cmd 方式虽然可以生成目录树,但是并不美观,让 ...

  5. python输出姓名_Python生成随机不重复姓名昵称

    姓采用百家姓,名字从常用名字高频字选取两个汉字,再和当前时间戳组合,估计应该是不会重复了,代码如下: # -*- coding:utf-8 -*- import random import time ...

  6. python随机生成车牌_Python实现随机生成任意数量车牌号

    之前做课设的时候舍友遇到了需要生成500w量级车牌号的问题,于是我便写了一个随机生成车牌号的程序,希望各位采纳. 注:Python实现 import random def chepaihao(len= ...

  7. python 随机生成手机号码_Python实现随机创建电话号码的方法示例

    本文实例讲述了Python实现随机创建电话号码的方法.分享给大家供大家参考,具体如下: 当需要随机的生成一些电话号码的时候,可以使用以下脚本,简单实用,第一个列表中 list列表中的数字可以自己添加, ...

  8. python随机生成奇数_python怎么随机生成奇数_后端开发

    PHP每15分钟自动更新网站地图(减少服务器消耗)_后端开发 sitemap.php为页面文件,sitemap.html为sitemap.php的克隆版,监控宝设置定时监控timeSitemap.ph ...

  9. python生成时间戳_python生成13位或16位时间戳以及反向解析时间戳的实例

    我就废话不多说了,直接上代码吧! import datetime import time def get_float_time_stamp(): datetime_now = datetime.dat ...

最新文章

  1. Git clone时出现Please make sure you have the correct access rights and the repository exists.问题已解决。
  2. python3.5.3下载安装教程_在Python3.5下安装和测试
  3. Qt Creator可视化Chrome跟踪事件
  4. dexpress 流程图_DevExpress控件使用经验总结
  5. Unreal Engine 4切换默认Camera实现
  6. 基于JAVA+Servlet+JSP+MYSQL的运动会管理系统
  7. python gui 框架中显示gif_使用QLab在PyQt GUI中显示gif
  8. easyui弹出层在最顶层显示跳出iframe框架通用javascript代码
  9. [译]R语言——Shiny框架之入门(三):如何启动一个Shiny应用
  10. IRP、IO_STACK_LOCATION、文件三种读写方式(buffer/driect/other)、DeviceIoControl
  11. java源程序的文件名必须与,Java源程序的文件名一定要与文件中某个类的名称一致。()...
  12. C语言 - 输入x的值,输出y相应的值 x (x<1) y= 2x-1 (1≤x<10) 3x-11 (x≥10)
  13. 【HDR学习】苹果EDR技术洞察(二)
  14. 大学英语综合教程二 Unit 5 课文内容英译中 中英翻译
  15. 查询学生的学号、课程号和成绩,并按成绩升序排序
  16. 心知天气Android开发,H5 实现天气效果(心知天气插件)
  17. windows中关于委派(delegation)的理解
  18. Win10缺失.Net处理方案汇总
  19. 转载---about Amazon EC2
  20. “经历了人生百态世间的冷暖,这笑容温暖纯真”

热门文章

  1. ELK三件套安装实践之路(1)
  2. JQuery中html、append、appendTo、after、insertAfter系列方法
  3. Bootstrap – 1.认识
  4. Jquery 获取select,radio 和 checkbox的值
  5. .Net Compact Framework 小技巧(1)
  6. hdu 4529(状态dp)
  7. Ubuntu 18.04下的Python和OpenCV的安装
  8. 简单查找,如果找到返回下标,如果找不到返回-1
  9. Python基础知识4--数据结构(树)
  10. 领域驱动设计,让程序员心中有码(七)