Pillow

Eric讨论 | 贡献2023年5月4日 (四) 06:24的版本

Pillow是一个Python的图像处理库,PIL(Python Imaging Library)2011年停止更新,随后Pillow分支了PIL并添加了Python 3的支持,现在成为PIL的替代品。

简介

时间轴

安装

使用pip安装:

pip install --upgrade pip
pip install --upgrade Pillow

了解更多 >> Pillow 文档:安装


快速入门

图片格式转换

from PIL import Image

im = Image.open("test.webp")
print(im.size, im.format)     # 打印图片尺寸,格式
im.show()                     # 显示图片
im.save("test.jpg")

了解更多 >> Pillow 文档:Image类的使用


Image类

生成Image类

名称 描述 示例
open() 从图像文件生成Image对象

PIL.Image.open(fp, mode='r', formats=None)
from PIL import Image

im = Image.open("test.jpg")
new() 生成一个新的Image对象

PIL.Image.new(mode, size, color=0)
im_new = Image.new('RGB',(1200,1200), 'white')
frombytes()

了解更多 >> Pillow 文档:The Image Class Pillow 文档:详细了解如何读取图片


属性

以下示例使用如下代码:

from PIL import Image

im = Image.open("test.jpg")
print(im.format)
名称 描述 示例
filename 文件名
format 文件格式 im.format 返回'jpg'
size

了解更多 >> Pillow 文档:Image属性


方法

名称 描述 示例
save() 保存图片。
crop() 裁剪图片。 输入参数4元组,坐标为(左、上、右、 下),其中 (0, 0) 中的 左上角,数值为像素。
box = (100, 100, 400, 400)
region = im.crop(box)
resize() 调整图片大小。 im.resize( (200,500) ),调整图片尺寸为200x500。

自定义一个调整大小函数

def resize_max(img, max_size=(500,500)):
    # 调整图片,一边等比缩放,不会变形。
    max_w, max_h = max_size
    old_w, old_h = img.size
    if old_w/old_h > max_w/max_h:
        img_new = img.resize( (int(max_w), int(max_h*old_h/old_w)) )
    else:
        img_new = img.resize( (int(max_w*old_w/old_h), int(max_h)) )
    return img_new
getexif() 打印照片Exif信息
from PIL import Image
from PIL.ExifTags import TAGS

img = Image.open(r'test.JPG')
exif = img.getexif()

for k, v in exif.items():
    print('{}: {}'.format(TAGS[k], v))

了解更多 >> * Pillow 文档:教程 Pillow API:The Image Class


资源

官网

网站