github/Show me the code (10)

第 0010 题:使用 Python 生成类似于下图中的字母验证码图片

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
#from pylab import *
import random,numpy,string

path = "/home/hqi/source_code/python/show_me_the_code"
# generate 4 ramdom letters
text = random.sample(string.letters, 4)
#print text

# generate 3-D random array
rawArray = numpy.zeros((100, 300, 3), \
                        dtype=numpy.uint8)
sh = rawArray.shape
for i in range(sh[0]):
    for j in range(sh[1]):
        for k in range(sh[2]):
            rawArray[i][j][k] = random.randint(0,255)

# generate the background pic from 3-D array
im = Image.fromarray(rawArray)
draw = ImageDraw.Draw(im)

# add check code onto the background
for i in range(len(text)):
    draw.text((75*i+random.randint(0,40),random.randint(0,40)), text[i],
              font=ImageFont.truetype("/usr/share/fonts/truetype/./ubuntu-font-family/Ubuntu-R.ttf",60),
              fill = (random.randint(0,255),random.randint(0,255),random.randint(0,255)))

im.save(path+"/veri_code.jpg")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,260评论 25 709
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,689评论 6 427
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,347评论 19 139
  • 从了解头马到要想加入,到准备计划,我用了一个晚上的时间。Toastmaster简称头马,每个月有定期的活动,主要是...
    酥小栗阅读 7,024评论 0 1
  • 当前天数:第30天。 剩余天数:70天。 参与人:我。 路程:5圈。 地点:家里的小区跑步场。 开始时间:06点3...
    Teratimes成长论阅读 1,885评论 0 0