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 import Image, ImageDraw, ImageFont, ImageFilter
15 import random
16
17 # 随机字母:
18 def rndChar():
19     return chr(random.randint(65, 90))
20
21 # 随机颜色1:
22 def rndColor():
23     return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))
24
25 # 随机颜色2:
26 def rndColor2():
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 in range(width):
39     for y in range(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‘)

运行结果:

插曲:

中间出现编译错误:

Traceback (most recent call last):
File "E:/python_pycharm/PIL_Test1.py", line 35, in <module>
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)即可

原文地址:https://www.cnblogs.com/youmeetmehere/p/10353313.html

时间: 2024-10-25 00:54:28

Python(三) PIL, Image生成验证图片的相关文章

python 利用PIL库进行更改图片大小的操作

python 是可以利用PIL库进行更改图片大小的操作的,当然一般情况下是不需要的,但是在一些特殊的利用场合,是需要改变图片的灰度或是大小等的操作的,其实用python更改图片的大小还是蛮简单的,只需要几行代码,有一点可能刚入门的小伙伴们可能不知道PIL库,PIL是一个库的简写,他的真名叫做pillow,因此,需要pip install pillow 用anaconda的话是conda install pillow千万不要pip/conda install PIL咯,下面贴出代码,希望对一些小伙

Python使用PIL模块生成随机验证码

PIL模块的安装 pip3 install pillow 生成随机验证码图片 import random from PIL import Image, ImageDraw, ImageFont from io import BytesIO def random_str(): ''' 生成随机字符 :return:随机字符 ''' random_int = str(random.randint(0,9)) random_up = chr(random.randint(65,90)) random_

servlet 生成验证图片

页面 <%@ page language="java" contentType="text/html; charset=UTF-8"     pageEncoding="UTF-8"%> <%     String path = request.getContextPath();     String basePath = request.getScheme() + "://"             + r

python使用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():

生成字母验证图片(python)

生成字母验证图片(python) by 伍雪颖 from PILimport Image, ImageDraw, ImageFont import random def generate_authenticode(): letters = random.sample('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',4) width = 100 height = 40 im = Image.new("RGB"

第二百七十节,Tornado框架-生成验证码图片,以及验证码结合Session验证

Tornado框架-生成验证码图片,以及验证码结合Session验证 第一.生成验证码图片  生成验证码图片需要两个必须模块 1.python自带的random(随机模块) 2.Pillow()图像处理模块里的PIL(图像库),为第三方模块,需要安装 封装验证码图片生成插件py 在封装文件里先导入random(随机模块),和Pillow()图像处理模块里的所需py文件 封装验证码图片生成插件功能,调用后返回验证码图片,和字符串类型验证码,两个返回值 注意:验证码需要一个字体文件,这个字体文件必须

用python生成验证码图片

除了配置好的python环境外,还需要配有python中的PIL库,这是python中专门用来处理图片的库.用传统的pip install 方法或者下载源码 python setup.py install 方法安装该库,很可能会报错(视运行环境不同).可以采用以下方法: 1.下载安装包URL:http://www.pythonware.com/products/pil/index.htm,要下载支持全平台的. 2.解压缩: tar –zxv –f Imaging-1.1.7.tar.gz 3.进

Python Show-Me-the-Code 第 0010 题 生成验证码图片

第 0010 题:使用 Python 生成类似于下图中的字母验证码图片 阅读资料 思路:先随机生成验证码,然后用Python的PIL库画出这个激活码的图片,具体点就是创建画布,加验证码的字上去,增加噪点进行干扰,再进行模糊处理,接着保存到名字为验证码的图片中. 0010.生成验证码图片.py #!/usr/bin/env python #coding: utf-8 import Image, ImageDraw, ImageFont, ImageFilter import string, ran

python利用PIL库使图片高斯模糊

一.安装PIL PIL是Python Imaging Library简称,用于处理图片.PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能设置.在源码ImageFilter.py的第160行: 所以,我们在这里自己改一下就OK了. 项目地址:http://www.pythonware.com/products/pil/ 二.修改后的代码 代码如下: #-*- coding: utf-8 -*- from PIL import Imag