本篇将会介绍python中的一个图像库Pillow。
文章目录
- 1. Pillow与PIL的关系
- 2. 调整大小
- 3. 加滤镜
- 4. 剪裁
- 5. 生成验证码
1. Pillow与PIL的关系
我们在网上搜python的图像库的话,可能搜到的时PIL。实际上之前python发展的时候就是PIL,这个库比较好用,可惜的是只支持到python2,而在python有一个大坑就是版本间即2跟3之间是不兼容的。
而到了3就有人在PIL的基础上,开发了Pillow,并且接口、导入等都是按照PIL的,所以大家可以简单的认为:Pillow就是python3版本上PIL。
- PIL(Python Image Library)
- Pillow
Pillow安装代码为:
pip install pillow
下面使用到的实例原图为下图:
2. 调整大小
In [26]: from PIL import Image
In [27]: im = Image.open("photo.jpg")
In [28]: newim = im.resize((100,100))
In [29]: newim.save("output1.jpg")
3. 加滤镜
In [31]: from PIL import ImageFilter
In [32]: im2 = im.filter(ImageFilter.BLUR)
In [33]: im2.save('blur.jpg','jpeg')
4. 剪裁
In [34]: im3 = im.crop((100,100,400,400))
In [35]: im3.save("subclip.jpg","jpeg")
5. 生成验证码
早期验证码的生成方式代码如下:
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))
# 240 X 68:
width = 60 * 4
height = 68
image = Image.new("RGB",(width, height),(255,255,255))
# 创建Font对象:
font = ImageFont.truetype(r"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())
# 输出文字:
for t in range(4):
draw.text((60*t + 10,10), rndChar(), font=font, fill=rndColor2())
# 模糊
image = image.filter(ImageFilter.BLUR)
image.save("code.jpg","jpeg")
运行结果为下:
自此,作为自学引导的模块学习到此为止,python还有很多的模块,需要未来大家自行进行学习。
下篇将会进行python的主线学习,学习python中的面向对象的编程,那些讲完之后如果还有更好玩的第三方模块再进行介绍。
6. 学习视频地址:用Python为美女打码