题目来自:Python 练习册。题目1.6:使用 Python 生成类似于下图中的字母验证码图片

查看更多于本人博客:李飞阳

参考代码

我们用随机颜色填充背景,再画上文字,最后对图像进行模糊,得到验证码图片如下:from PIL import Image, ImageDraw, ImageFont, ImageFilter

import random

# 随机字母:

def rndChar():

return chr(random.randint(65, 90))

# 随机颜色1:

def rndColor():

return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))

# 随机颜色2:

def rndColor2():

return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))

def compose():

# 240 x 60:

width = 240

height = 60

image = Image.new('RGB', (width, height), (255, 255, 255))

# 创建Font对象:

font = ImageFont.truetype('C:/windows/fonts/Arial.ttf', 36)

# 创建Draw对象:

draw = ImageDraw.Draw(image)

# 填充每个像素:

for x in range(width):

for y in range(height):

draw.point((x, y), fill=rndColor())

# 输出文字:

letter = []

for t in range(4):

letter.append(rndChar())

draw.text((60 * t + 10, 10), letter[t], font=font, fill=rndColor2())

# 模糊:

image.save('code.jpg', 'jpeg')

image = image.filter(ImageFilter.BLUR)

image.save('filter.jpg', 'jpeg')

print (letter)

compose()

输出验证码原本数字:

模糊前:

image = image.filter(ImageFilter.BLUR) # 模糊:

模糊后:

如果运行的时候报错:

IOError: cannot open resource

这是因为PIL无法定位到字体文件的位置,可以根据操作系统提供绝对路径,比如:

'/Library/Fonts/Arial.ttf'

小结

PIL提供了操作图像的强大功能,可以通过简单的代码完成复杂的图像处理。

本文由 mmmwhy 创作,最后编辑时间为: May 2, 2019 at 01:53 pm

python用*号输出字母c的图案_第1.6题:使用Python生成字母验证码图片相关推荐

  1. python函数格式化输出唐诗《锦瑟》_编程小白是这样用python把唐诗玩坏的

    最近对编程比较感兴趣,于是请教程序猿朋友们,最后都推荐我学习Python.翻看教程几天后,碰巧遇到有朋友在玩唐诗乱搭的游戏,于是我就写了一段python程序(对于能否叫程序我一直很怀疑),挑了了很多的 ...

  2. python标准库很丰富支持多种编程范式_基础班-第03天{python基础}

    声明:内容来源于网络,本人只是在此稍作整理,如有涉及版权问题,归传智播客官方所有. 认识python(了解) 1.Python发展历史 起源 Python的作者,Guido von Rossum,荷兰 ...

  3. 官网的python下载安装后无需配置即可使用_图文解说少儿编程软件python下载安装,没有经验的新手也可以做到...

    最近刚刚重新更换了电脑,对于这台电脑来说,python就是未认识的朋友,顺便给大家演示一下如何找到python.安装python.打开python,希望能给各位朋友提高很多的学习借鉴作用. 如何找到p ...

  4. python编程输入名字配对情侣网名_翻译:《实用的Python编程》01_05_Lists

    1.5 列表 本节介绍 Python 原始数据类型列表(list). 列表是一种有序的集合.python 建立列表 使用方括号 [] 来定义列表字面量.git names = [ 'Elwood', ...

  5. 以下选项中、不是python对文件的打开模式的是_以下选项中,不是Python对文件的打开模式的是...

    [判断题]不同物质,在产生能级跃迁时,吸收的光的频率是相同的 [单选题]下面代码的输出结果是 x=0b1010 print(x) [判断题]7.公路运输统一单证由交通部统一制定格式,这些单证可以作为物 ...

  6. python在vsc制作动态二维码_用VScode愉快的写python代码

    前言 VScode是一个相当优秀的IDE,具备开源.跨平台.模块化.插件丰富.启动时间快.颜值高.可高度定制等等优秀的特质,不愧是微软爸爸的私生子. 所以用VScode来编写Python,也是相当的好 ...

  7. python实现一个简单的项目建议书范文_建议收藏,22个Python迷你项目(附源码)

    Python部落在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项 ...

  8. python实现一个简单的项目建议书范文_建议收藏,18个Python迷你项目(附源码)

    在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项目的目的及提示, ...

  9. python c++情侣网名是什么意思_如何实现 C/C++ 与 Python 的通信?

    ########## 以下所有文字均为答主手敲,转载请注明出处和作者 ########## ## 更新:关于ctypes,见拙作 聊聊Python ctypes 模块 - 蛇之魅惑 - 知乎专栏 属于 ...

最新文章

  1. iOS翻页视图控制器UIPageViewController的应用
  2. (转)一个带自定义分页,排序功能的DATAGRID控件(公开源码)
  3. 最近,程序员又被区别对待了
  4. go 错误处理总结
  5. 新手做2D手游该用哪些工具?
  6. Nginx基本数据结构之ngx_hash_t
  7. 3-1067. 试密码
  8. bzoj 2435: [Noi2011]道路修建(DFS)
  9. python学习之老男孩python全栈第九期_day022作业
  10. 【PRML 学习笔记】第一章 - 介绍 (Introduction)
  11. 韦东山freeRTOS系列教程之【第一章】FreeRTOS概述与体验
  12. [源码和报告分享]基于Java的局域网聊天工具
  13. 用了半年的时间,把python学到了能出书的程度
  14. 在树莓派上安装配置远程摄像头监控motion
  15. R语言计算时间序列数据的移动平均值(滚动平均值、例如5日均线、10日均线等):使用zoo包中的rollmean函数计算k个周期移动平均值
  16. 数据库复习 - PART2 - 建模设计与范式
  17. Redis 设计与实现——读书笔记
  18. 5G和WiFi6的故事
  19. C++find_if算法
  20. QT使用libmodbus库与施耐德PLC通信

热门文章

  1. 获取双卡手机IMEI、IMSI
  2. matlab的上机报告,数理统计和Matlab上机报告.doc
  3. 关于电脑连不上WiFi,但可以连上网线的解决办法
  4. 怎么把腾讯QLV格式的“将夜”转换成MP4
  5. 防水蓝牙耳机哪个好?防水音质好的蓝牙耳机推荐
  6. 何水无鱼?何山无石?何人无父?何女无夫?何树无枝?何城无市?
  7. 正式发布!Matlab配色神器TheColor
  8. 客户关系管理(CRM)系统源码设计方案
  9. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第13波-一键生成带图片自由报表...
  10. 想想自己如果不做开发,可能会从事什么职业?