大家好,今天我们来继续学习Pillow的相关知识,本文详解的讲解了使用Pillow库进行图片的简单处理,使用PyCharm开发Python的详细过程和各种第三方库的安装与使用。运用pillow来对图片进行处理,我们先介绍如何安装Pillow库和图象处理基本知识的介绍。上一篇我们介绍了如何透明度混合以及遮盖混合。今天我们说说关于图片的复制和缩放,粘贴和裁剪,分离和合并。
Pillow 是 Python Imaging Library的简称,是 Python 语言中最为常用的图像处理库。Pillow 库提供了对 Python3 的支持,为Python3 解释器提供了图像处理的功能。通过使用 Pillow 库, 可以方便地使用 Python 程序对图片进行处理,例如常见的尺寸、格式、色彩、旋转等处理。
我们继续介绍Image 模块的其他功能。
目录
复制和缩放
(1) 复制图像
(2) 缩放像素
【示例】缩放指定的图片,实现图像每个像素值×2
(3) 缩放图像
【示例】缩放成指定的大小
粘贴和裁剪
(1) 粘贴
(2) 裁剪图像
【示例】对指定图片剪切和粘贴操作
分离和合并
(1) 分离
(2) 合并
【示例】对指定图片进行合并和分离操作
我们可以利用pillow功能,实现复制和缩放,在我们传统的观念里,我们只能放大图片尺寸,其实,我们还可以放大像素,有点人可能就好奇了,像素怎么放大,这里就要使用函数 eval()实现像素缩放处理。
在 Pillow 库的 Image 模块中,可以使用函数 Image.copy()复制指定的图片,这可以 用于在处理或粘贴时需要持有源图片。
在 Pillow 库的 Image 模块中,可以使用函数 eval()实现像素缩放处理,能够使用函 数 fun()计算输入图片的每个像素并返回。使用函数 eval()语法格式如下
eval(image,fun)
其中 image 表示输入的图片,fun 表示给输入图片的每个像素应用此函数,fun()函数 只允许接收一个整型参数。如果一个图片含有多个通道,则每个通道都会应用这个函数。
from PIL import Image
img=Image.open('img.jpg')
Image.eval(img,lambda i:i*2).show()
在 Pillow 库的 Image 模块中,可以使用函数 thumbnail()原生地缩放指定的图像 。具 体语法格式如下:
Image.thmbnail(size,resample=3)
from PIL import Image
img=Image.open('img.jpg')
imgb=img.copy()
#缩放为指定大小(220,268)
imgb.thumbnail((220,268))
imgb.show()
前面,我们介绍了复制和缩放,同理,我们还可以进行图片的粘贴和剪裁。
在 Pillow 库的 Image 模块中,函数 paste()的功能是粘贴源图像或像素至该图像中。 具体语法格式如下:
Image.paste(im,box=None,mask=None)
在 Pillow 库的 Image 模块中,函数 crop()的功能是剪切图片中 box 所指定的区域, 具体语法如下:
Image.crop(box=None)
参数 box 是一个四元组,分别定义了剪切区域的左、上、右、下 4 个坐标.
from PIL import Image
img=Image.open('img.png')
#复制图片
imgb=img.copy()
imgc=img.copy()
#剪切图片
region=imgb.crop((5,5,120,120))
#粘贴图片
imgc.paste(region,(30,30))
imgc.show()
在 Pillow 库的 Image 模块中,使用函数 split()可以将图片分割为多个通道列表。使 用函数 split()的语法格式如下所示:
Image.split()
在 Pillow 库的 Image 模块中,使用函数 merge()可以将一个通道的图像合并到更多通道图像中。使用函数 merge()的语法格式如下所示:
Image.merge(mode,bands)
其中 mode 指输出图像的模式,bands 波段通道,一个序列包含单个带图通道。
from PIL import Image
img1=Image.open('1.jpg')
img2=Image.open('2.jpg')
img2=img2.resize(img1.size)
#分隔
r1,g1,b1=img1.split()
r2,g2,b2=img2.split()
temp=[r1,g2,b1]
img=Image.merge('RGB',temp)
img.show()
在 Pillow 库的 Image 模块中,还有很多其他重要的内置函数和属性。
在 Pillow 库的 Image 模块中,其他常用的内置函数如下所示: