Python中的pillow(PIL)

Pillow是Python Imaging Library (PIL)的更新版本,支持Python 3.x并包含更多新特性。本文介绍了为何要学习Pillow,Pillow的安装注意事项,以及Pillow在图像档案、显示和处理方面的功能。Pillow支持多种图像模式,如RGB、RGBA等,提供了丰富的图像处理操作,如滤镜、变换等。
摘要由CSDN通过智能技术生成

Pillow

PIL:Python Imaging Library,是Python的图像处理标准库,PIL功能非常强大,API非常简单,但只支持到Python2.7。
Pillow:众多志愿者在PIL的基础上创建了兼容的版本,支持最新Python 3.x,又加入了许多新特性。

为什么学习Pillow
安装Pillow

第三方库安装方法

pip install pillow
注意事项:

Pillow和PIL不能在同一环境中共存。在安装Pillow之前,请卸载PIL。
Pillow >= 1.0不支持import Image ,请改用from PIL import Image导入。
Pillow> = 2.1.0不再支持“import _imaging”。请改用from PIL.Image import core as _imaging导入。

PIL的概述

在Python图像库增加了图像处理功能,以您的Python解释器。
该库提供广泛的文件格式支持,高效的内部表示和相当强大的图像处理功能。
核心图像库旨在快速访问以几种基本像素格式存储的数据。它应该为一般的图像处理工具提供坚实的基础。
我们来看看这个库的一些可能用途。

图像档案

Python Imaging Library是图像存档和批处理应用程序的理想选择。您可以使用该库创建缩略图,在文件格式之间进行转换,打印图像等。
当前版本标识并读取大量格式。写支持有意限于最常用的交换和表示格式。

图像显示

当前版本包括Tk PhotoImage和 BitmapImage接口,以及可与PythonWin和其他基于Windows的工具包一起使用的版本。许多其他GUI工具包都带有某种PIL支持。Windows DIB interface对于调试,还有一种show()方法可以将映像保存到磁盘,并调用外部显示实用程序。

图像处理

该库包含基本的图像处理功能,包括点操作,使用一组内置卷积内核进行过滤以及颜色空间转换。
该库还支持图像大小调整,旋转和任意仿射变换。
有一种直方图方法,可以从图像中提取一些统计数据。这可用于自动对比度增强和全局统计分析。

教程

Bands

图像可以包含一个或多个数据带。Python Imaging Library允许您在单个图像中存储多个波段,前提是它们具有相同的尺寸和深度。例如,PNG图像可能具有红色,绿色,蓝色和Alpha透明度值的“R”,“G”,“B”和“A”波段。许多操作分别作用于每个频带,例如直方图。将每个像素视为每个带有一个值通常很有用。

模式

所述mode图像的限定图像中的像素的类型和深度。当前版本支持以下标准模式:
1 (1位像素,黑白,每字节存储一个像素)
L (8位像素,黑白)
P (8位像素,使用调色板映射到任何其他模式)
RGB (3x8位像素,真彩色)
RGBA (4x8位像素,带透明蒙版的真彩色)
CMYK (4x8位像素,分色)
YCbCr (3x8位像素,彩色视频格式)
请注意,这是指JPEG,而不是ITU-R BT.2020标准
LAB (3x8位像素,L * a * b色彩空间)
HSV (3x8位像素,色相,饱和度,值颜色空间)
I (32位有符号整数像素)
F (32位浮点像素)
PIL还为一些特殊模式提供有限的支持,包括LA(带有alpha的L),RGBX(带填充的真彩色)和RGBa带有预乘alpha的真彩色。但是,PIL不支持用户定义的模式; 如果您需要处理上面未列出的波段组合,请使用一系列图像对象。
您可以通过mode 属性读取图像的模式。这是一个包含上述值之一的字符串。

大小

您可以通过size 属性读取图像大小。这是一个2元组,包含水平和垂直大小(以像素为单位)。

坐标系

Python Imaging Library使用笛卡尔像素坐标系,左上角有(0,0)。请注意,坐标指的是隐含的像素角; 寻址为(0,0)的像素的中心实际上位于(0.5,0.5)。

坐标通常作为2元组(x,y)传递给库。矩形表示为4元组,左上角首先给出。例如,覆盖所有800x600像素图像的矩形被写为(0,0,800,600)。

调色板

调色板模式(P)使用调色板定义每个像素的实际颜色。

信息

您可以使用该info属性将辅助信息附加到图像 。这是一个字典对象。
加载和保存图像文件时如何处理此类信息取决于文件格式处理程序(请参阅图像文件格式一章)。大多数处理程序info在加载图像时向属性添加属性,但在保存图像时忽略它。

过滤器

对于可将多个输入像素映射到单个输出像素的几何操作,Python Imaging Library提供了不同的重采样过滤器。

NEAREST
从输入图像中选择一个最近的像素。忽略所有其他输入像素。

BOX
源图像的每个像素对具有相同权重的目标图像的一个像素做出贡献。对于升级相当于NEAREST。此过滤器只能与resize() 和thumbnail()方法一起使用。
版本3.4.0中的新功能。

BILINEAR
对于调整大小,可以对可能对输出值有贡献的所有像素使用线性插值计算输出像素值。对于其他变换,使用输入图像中2x2环境的线性插值。

HAMMING
产生比图像更清晰的图像BILINEAR,在局部水平上没有位错BOX。此过滤器只能与resize() 和thumbnail()方法一起使用。
版本3.4.0中的新功能。

BICUBIC
对于调整大小,使用对可能有助于输出值的所有像素的三次插值来计算输出像素值。对于其他变换,使用输入图像中的4x4环境上的三次插值。

LANCZOS
使用可能有助于输出值的所有像素上的高质量Lanczos滤波器(截断的sinc)计算输出像素值。此过滤器只能与resize() 和thumbnail()方法一起使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值