pillow中的convert/paste/resize

目录

convert

 paste

 resize

 重采样过滤器


此文所用的到的原图为

convert

作用:将图片转换为指定的模式

参数:

mode

图片的模式,传入需要转换的模式

matrix

转换矩阵。传入该参数时,应该传入由浮点数构成的元组,元组长度为4或12。matrix只支持从少数模式转换成'L'或'RGB',RGBA是不支持的

dither

高频振动,用于控制颜色抖动。从模式'RGB'转换为'P'或从'RGB'或'L'转换为'1'时使用。可用的方法有'NONE'或'FLOYDSTEINBERG'(默认)。matrix参数只能存在一个

palette

控制调色板的产生从模式'RGB'转换为'P'时使用,可用的方法有'WEB'(默认)或'ADAPTIVE'。'ADAPTIVE'表示使用自适应的调色板。

colors

当palette参数为'ADAPTIVE'时,用于控制调色板的颜色数目。默认是最大值,即256种颜色。

from PIL import Image
im=Image.open("image/fj.jpg")
im=im.convert('L')
im.show()

 

from PIL import Image
im=Image.open("image/fj.jpg")
im=im.convert('P')
im.show()

 

 paste

将另一张图片粘在当前图片上

参数

im

传入一张图片,当第二个参数box指定的是一个区域时,im参数也可以是一个整数或颜色值相当于粘上一个色块板

box

图片粘贴的位置或区域。传入一个长度为2或4的元组,长度为2表示被粘图片的左上角坐标,4表示区域,四个角的坐标,坐标轴的原点均为左上角为(0,0)。

mask

蒙版传入一张与被粘贴图片尺寸一样的图片,可以使用模式为'1'、'L'或者'RGBA'的图像。255,直接粘贴,0,没有粘贴,中间数,im与mask混合后粘贴。

from PIL import Image
im=Image.open("image/fj.jpg")
im1=Image.open("image/qq.jpg")
im.paste(im1,(30,30))
im.show()

 

 

from PIL import Image
im=Image.open("image/fj.jpg")
im1=Image.open("image/qq.jpg")
im1=im1.convert('L')
im=im.crop((0,0,300,400))
im1=im1.crop((0,0,300,400))
im.paste(im,im1)
im.show()

 

 resize

图片的缩放

四个参数

size

图片缩放后的尺寸,传入一个长度为2的元组

resample

重采样,是一个可选的重采样过滤器可以传入Image.NEAREST, Image.BOX, Image.BILINEAR, Image.HAMMING, Image.BICUBIC, Image.LANCZOS。默认为Image.BICUBIC。如果图像的模式为'1'或'P',则始终设置为Image.NEAREST。

box

缩放图片的区域。传入长度为4的元组不可超出原图范围,否则报错

reducing_gap

减少间隙。传入一个浮点数,用于优化图片缩放效果,默认不进行优化,值大于3.0时优化效果基本已经是公平的重采样。

from PIL import Image
im=Image.open("image/fj.jpg")
im=im.resize((200,200),box=(0,0,300,300),reducing_gap=2.0)
im.show()

 写入参数时,省略resample不写时,box这个词一定要加,否则报错。

 重采样过滤器

Image.BOX​

源图像的每个像素以相同的权重对目标图像的一个像素做出贡献。对于升级相当于​NEAREST​. 此过滤器只能与​resize()​ 和​thumbnail()​方法一起使用。

Image.BILINEAR

要调整大小,使用可能有助于输出值的所有像素上的线性插值计算输出像素值。对于其他转换,使用输入图像中2x2环境上的线性插值。

Image.HAMMING

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

Image.BICUBIC​

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

Image.LANCZO

使用高质量的 Lanczos 过滤器对可能对输出值有贡献的所有像素计算输出像素值。此过滤器只能与​resize()​ 和​thumbnail(​)方法一起使用。

Image.NEAREST​

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

from PIL import Image
im=Image.open("image/fj.jpg")
im.thumbnail((200,200),Image.BOX)
im.show()

 

还有一个创建缩略图,图像更易于展示和浏览用thumbnail(size,resample)不过,有个缺点是pillow是等比缩放,因此最终尺寸不一定为指定尺寸,且尺寸不可超过原图。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值