Pillow的使用-Image篇

本文介绍了Pillow库在Python中的使用,包括安装、构建图像、图像对象的方法和属性,如Image.open()、alpha_composite()、blend()等。还详细讲解了如何进行图像的合并、过滤、旋转、调整大小等操作,并探讨了Pillow支持的图像模式。
摘要由CSDN通过智能技术生成

安装Pillow

pip install pillow

构建图像

  • Image.open(fp, mode =’r’ ):打开图片文件,返回一个Image对象
    • fp:图片路径
    • mode:模式。如果给出,必须是r
from PIL import Image
im = Image.open(path)
  • Image.alpha_composite(im1, im2):在im1对象上的透明层复合im2,返回一个Image对象
    • im1:Image对象1
    • im2:Image对象2
from PIL import Image
im1 = Image.open(path1)
im2 = Image.open(path2)
im3 = Image.alpha_composite(im1,im2)
  • Image.blend(im1, im2, alpha):在两个图片对象之间进行插值,返回一个Image对象
    • im1:Image对象1
    • im2:Image对象2
    • alpha:透明图

如果alpha为0.0,则返回第一个图像的副本。如果alpha为1.0,则返回第二个图像的副本,基本的算法如下:

out  =  image1  *  (1.0  -  alpha ) +  image2  *  alpha
  • Image.eval(image, *args):将函数应用于给定图像的中每一个像素。请注意,该函数对每个可能的像素值都进行一次评估,因此您不能使用随机组件或其他生成器。返回一个Image对象
    • image:Image对象
    • args:一个函数对象和该函数的一个取整参数
from PIL import Image

def func(a):
    return a

im1 = Image.open(path1)
img = Image.eval(img1,func,1)
  • Image.merge(mode, bands):将一组单波段图像合并成为一个多波段图像。返回一个Image对象
    • mode:用于输出图像的模式。支持的模式请看下方Pillow支持的模式表
    • bands:输出图像中每个波段包含一个单波段图像的序列
  • Image.new(mode, size, color=0):根据模式、大小和颜色创建一个新的Image对象。烦会一个Image对象
    • mode:用于新图像的模式。支持的模式请看下方Pillow支持的模式表
    • size: 大小,元组类型,包含宽度与高度
    • color:用于新图像的颜色。传入一个整数的单波段模式,或传入一个元组的多波段模式,或者传入一个ImageColor对象
from PIL import Image

# 单个整数值
img = Image.new("RGBA",(1024,768),215)

# 元组
img = Image.new("RGBA",(1024,768),(215,0,0)

# ImageColor
from PIL import ImageColor
color = ImageColor.getrgb("#FF0000")
img = Image.new("RGBA",(1024,768),color)

img.show()

从上面代码运行结果显示是一个红色,1024*768的图像

图像对象

  • alpha_composite(im, dest=(0,0), source=(0,0)):在Image对象中符合im,效果与类方法alpha_composite相似。无返回值

    • im:Image对象
    • dest:指定此(目标)图像左上角的可选的长度为2的元组(左,上)
    • source:盖源图像中左上角的长度为2的元组(左,上)或源矩形边界的长度为4的元组(左,上,右,下)
  • copy():复制此图片

from PIL import Image

img = Image.new("RGBA",(1024,768),215)
img_copy = img.copy()
  • crop(box=None):返回此图像的一个矩形区域,为一个Image对象
    • box:裁剪矩形,为一个长度为4的元组(左,上,右,下)
from PIL import Image

img = Image.new("RGBA",(1024,768),215)
img_copy = img.crop(box=(0,0,500,500))
  • draft(mode, size):配置图像文件加载器,以便返回尽可能接近给定模式和大小的图像版本,无返回值

    • mode:模式
    • size:大小
  • filter(filter):使用给定的过滤器过滤此图像,返回一个Image对象

    • filter:过滤器
  • getbands():获取此图像中每个波段名称的元组。返回一个tuple

from PIL import Image

img = Image.new("RGBA",(1024,768)
  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值