Python学习笔记__13.1章 三方模块 Pillow

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记__13.1章 三方模块 Pillow相关的知识,希望对你有一定的参考价值。

# 这是学习廖雪峰老师python教程的学习笔记

Python平台事实上的图像处理标准库是PIL:Python Imaging Library。一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow

1、操作图像

from PIL import Image

 

# 打开一个jpg图像文件,注意是当前路径:

im = Image.open('test.jpg')

# 获得图像尺寸:

w, h = im.size

print('Original image size: %sx%s' % (w, h))

# 缩放到50%:

im.thumbnail((w//2, h//2))

print('Resize image to: %sx%s' % (w//2, h//2))

# 把缩放后的图像用jpeg格式另存为thumbnail.jpg:

im.save('thumbnail.jpg', 'jpeg')

2、模糊效果

from PIL import Image, ImageFilter

 

# 打开一个jpg图像文件,注意是当前路径:

im = Image.open('test.jpg')

# 应用模糊滤镜:

im2 = im.filter(ImageFilter.BLUR)

im2.save('blur.jpg', 'jpeg')

 

3、生成字母验证码图片

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 60:

width = 60 * 4

height = 60

# 创建image对象,RGB:色彩模式,(width, height):图片尺寸。 (255, 255, 255):16进制颜色码,这是白色

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

# 创建Font对象,定义了图像的字体和字体大小。用绝对路径,避免报错

font = ImageFont.truetype("C/Windows/Fonts/ahronbd.ttf", 36)

# 创建Draw对象,将最初创建的image对象作为参数

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')

 

技术分享图片

 

4、扩展文档

Pillow官方文档 (https://pillow.readthedocs.io/en/5.1.x/)

Python-Image 基本的图像处理操作 (https://www.cnblogs.com/kongzhagen/p/6295925.html)


以上是关于Python学习笔记__13.1章 三方模块 Pillow的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记__5章 模块

Python学习笔记__12.1章 内建模块——datetime

Python学习笔记十_模块第三方模块安装模块导入

Python学习笔记__9.3章 操作文件和目录

Python学习笔记__13.3章 chardet

Python学习笔记__10.5章 分布式进程