python image生成图片_Python(三) PIL, Image生成验证图片

本文介绍了如何使用Python的PIL库生成验证码图片。通过导入Image, ImageDraw, ImageFont模块,设置随机字母和颜色,创建并填充背景,输出文字并应用模糊效果,最终显示并保存验证码图片。在实现过程中需要注意字体文件的路径和名称,避免出现资源无法打开的错误。" 124315434,12544138,CentOS7安装MySQL for Hive环境配置,"['MySQL', 'Linux', 'Hive', '数据库', '系统配置']
摘要由CSDN通过智能技术生成

Python(三) PIL, Image生成验证图片

安装好PIL,开始使用。

在PyCharm中新建一个文件:PIL_Test1.py

1 #PIL 应用练习

2 #3 #import PIL

4 #from PIL import Image

5 #a = Image.open("E:\\照片\\2017-8-6_北海公园\\QQ图片20170806213744.jpg")

6 #a.rotate(30).show()

7

8 #---------------------

9 #作者:门下平章

10 #来源:CSDN

11 #原文:https://blog.csdn.net/u013180339/article/details/77363680

12 #版权声明:本文为博主原创文章,转载请附上博文链接!

13

14 from PIL importImage, ImageDraw, ImageFont, ImageFilter15 importrandom16

17 #随机字母:

18 defrndChar():19 return chr(random.randint(65, 90))20

21 #随机颜色1:

22 defrndColor():23 return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))24

25 #随机颜色2:

26 defrndColor2():27 return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))28

29 #240 x 60:

30 width = 60 * 4

31 height = 60

32 image = Image.new(‘RGB‘, (width, height), (255, 255, 255))33 #创建Font对象:

34 font = ImageFont.truetype(‘arial.ttf‘, 36)35 #创建Draw对象:

36 draw =ImageDraw.Draw(image)37 #填充每个像素:

38 for x inrange(width):39 for y inrange(height):40 draw.point((x, y), fill=rndColor())41 #输出文字:

42 for t in range(4):43 draw.text((60 * t + 10, 10), rndChar(), font=font, fill=rndColor2())44 #模糊:

45 image =image.filter(ImageFilter.BLUR)46 image.show()47 image.save(‘code.jpg‘, ‘jpeg‘)

运行结果:

20190206001452748843.png

插曲:

中间出现编译错误:

Traceback (most recent call last): File "E:/python_pycharm/PIL_Test1.py", line 35, in font = ImageFont.truetype(‘Arial.ttf‘, 36) File "E:\python_pycharm\venv\lib\site-packages\PIL\ImageFont.py", line 280, in truetype return FreeTypeFont(font, size, index, encoding, layout_engine) File "E:\python_pycharm\venv\lib\site-packages\PIL\ImageFont.py", line 145, in __init__ layout_engine=layout_engine)OSError: cannot open resource 改为font = ImageFont.truetype(‘arial.ttf‘, 36)即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值