python PIL模块知识点

简介:Pillow是Python Imaging Library的简称,是Python语言中最为常用的图像处理库。Pillow库提供了对Python3的支持,为Python3解释器提供了图像处理的功能。通过使用Pillow库,可以方便地使用Python程序对图片进行处理,例如常见的尺寸、格式、色彩、旋转等处理。

1.Image打开显示模块

在Image模块中使用函数open()打开一幅图片,执行后返回Image类的实例。当文件不存在时,会引发IOError错误。使用函数open()语法格式如下所示:

open(fp,mode)

(1)fp:指打开文件的路径
(2)mode:可选参数,表示打开文件的方式,通常使用默认值r。

【示例】使用Image打开一幅图片

#导入Image模块
from PIL import Image
#打开图片
im = Image.open('图像路径名称')
im.show()
##查看图片的信息
print('图像格式:',im.format)
print('图像大小,格式是(宽度,高度):',im.size)
print('图像宽度:',im.width)
print('图像高度:',im.height)
print('读取坐标在(100,100)处的像素的信息:',im.getpixel((100,100))) ##以元祖的形式输入

2.Image完成图像混合

(1)透明度混合处理
在Pillow库的Image模块中,可以使用函数blend()实现透明度混合处理。具体语法格式如下:

blend(im1,im2,alpha)

其中im1、im2指参与混合的图片1和图片2,alpha指混合透明度,取值是0-1。通过使用函数blend(),可以将im1和im2折两幅图片(尺寸相同)以一定的透明度进行混合。混合过程如下:

(im1*(1-alpha)+im2*alpha)

当混合透明度为0时,显示im1原图。当混合透明度alpha取值为1时,显示im2原图片。
在Image模块中,可以使用函数new()新建图像。具体语法格式如下:

new(mode,size,color=0)

(1)mode:图片模式
(2)size:表示图片尺寸,是使用宽和高两个元素构成的元祖
(3)color:默认黑色

from PIL import Image
img1 = Image.open('图像路径名称').convert(mode="RGB")
img2 = Image.new("RGB",img1.size,"red")

##混合两幅图像
Image.blend(img1,img2,alpha=0.5).show()

(2)遮罩混合处理
在Pillow库中Image模块中,可以使用函数composite()实现遮罩混合处理。具体语句格式如下:

composite(im1,im2,mask)

其中im1和im2表示混合处理的图片1和图片2,mask也是一个图像,mode可以为“1”,“L”,or“RGBA”,并且大小要和im1、im2一样。
函数composite()的功能是使用mask来混合图片im1,im2,并且要求mask、im1、im2三幅图片的尺寸相同。
【示例】遮罩混合图片

from PIL import Image
img1 = Image.open('img1.jpg')
img2 = Image.open('img2.jpg')
img2 = img2.resize(img1.size)
r,g,b = img2.split()
Image.composite(img2,img1,b).show()

3.图像的缩放、复制、剪切、粘贴

复制和缩放
(1)复制图像
在Pillow库的Image模块中,可以使用函数Image.copy()复制指定的图片,这可以用于在处理或粘贴时需要特有源图片。
(2)缩放像素
在Pillow库的Image模块中,可以使用函数eval()实现像素缩放处理,能够使用函数fun()计算输入图片的每个像素并返回。使用函数eval()语法格式如下:

eval(image,fun)

其中image表示输入的图片,fun表示给输入图片的每个像素应用此函数,fun()函数只允许接收一个整型参数。如果一个图片含有多个通道,则每个通道都会应用这个函数。
【示例】缩放指定的图片,实现图像每个像素值×2

from PIL import Image
img = Image.open("img2.jpg")
Image.eval(img,lambda
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值