问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何对中文验证码中的文字进行拆分,旋转和切割(python),为了容易识别一点

发布网友 发布时间:2022-05-11 03:16

我来回答

2个回答

热心网友 时间:2022-05-11 04:45

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


热心网友 时间:2022-05-11 06:03

能把需要处理的东西和处理后是啥样的贴出来吗
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
注册保险代理有限公司需要什么资料! 现在什么云手机性价比高一点? 50个可接双宾语的动词 为琵琶独奏曲《春江花月夜》配一首词或诗 我经常看到HI语音里会有什么魅力榜、贡献榜这些排名,我也一直在语音直播... 跨行通怎么激活 父母是农民不知道有没有纳税 普通农民可以算纳税人吗? 农民不交农业税了,是不是纳税人? 小红书上女生缺衣服穿的心情说说四十句 这是什么昆虫! 喜欢寄居在牛粪堆里面的蛆是什么昆虫 这是什么虫子,牛粪里的,不是新粪里的虫子,绝对不是蛆。 牛粪里有一种像蛆一样的黑色虫子 是什么? 电影晚秋有几个版本 晚秋这部电影演的是什么意思? 请问大佬有晚秋 ??2010年上映的由 汤唯主演的免费高清百度云资源吗 传媒政策与法规的图书目录 法律文本与法律翻译的目录 哪个水果在炒牛肉时加入,会比嫩肉粉更加好用? 如图是由哪个平面图形旋转得到的( ) A. B. C. D 怎么证明一个图形是由另一个图形旋转得到的 下列图形中,是经过旋转得到的 旋转的气流是什么? 三角形abc,绕a旋转90度,得到a&#39;b&#39;c&#39;,然后说三角形abc还能绕哪点旋转得a&#39;b&#39;c&#39; 三角形ABC旋转得三角形AED,所以&lt;BAE=90°,四边形ACFD为正方形,且它的面积等于四边形ABFE,证明勾股定理 一等腰三角形旋转得五星,以哪个点为中心 图形bcd分别是由图形a怎么旋转得到的 旋转中心在三角形的线上如何旋转得三角形 平移得到的是___,旋转得到的是___A. B. C. D 西洋钟最早什么时候进入中国的?是不是明朝就有了? 中国古代造钟和西方造钟有什么不同? 钟表是什么时候发明的?当初时针就是顺时针转的?为什么? 4:30过30分钟后是几点钟? 4个钟是多长时间 西方人为什么喜欢用时钟来说明方向 要怎么把家庭电脑改成网吧系统 冰箱怎样除味?有哪些比较好的方法吗? 31省份一季度经济数据出炉,哪些省份GDP表现优秀? 浙江的综合实力在世界排名第几? 成都哪里有卖圣罗兰鸦片香水? 宁波在哪里可以买的到圣罗兰鸦片香水 香水~dior毒药系列和YSL的鸦片,用过的来 oppo智能手机和酷派智能手机,那个好些?价位在一千七以下!!别的品牌国产机也可以!! 三星oppo 小米 酷派手机哪个好? 酷派OPPO 黑莓 哪个好 啊 成功 你是一个无底洞这是什么歌 蔡健雅的《无底洞》 歌词 问下这是哪首歌呢 谁给推荐几首好听的歌?