Pillow小记

在Python中,PIL库主要适用于python2,对于python3则改名为pillow。对于库的运用,import PTL,而不允许用pillow。
from PIL import Image是最为常用的模块。

from PIL import Image

比较简单的用法

open()

打开图片,例如:i=Tmage.open(“xxx.jpg”)标准格式为open(fp, mode='r'),但是r为默认且必须,因此可不带。

show()

例如:接上一个例子,i.show()

调用图片显示软件打开图片,但是打开后需要手动关闭

new()

用于创建新的画布,new(mode, size, color=0).mode为图片的模式,图片模式RGBA、P常见的有RGB三原色真彩图像,每一个值为0~255.L黑白图像,数值0~255,由0的黑色转化为255的白色。size为长宽,用元组的方式表示,像素大小,1像素约为。3毫米。color的数值与模式有关,RGB可以用元组表示,也部分可以用英语单词或者16进制表示,后面备注。

width

图片的像素宽度

height

图片的像素高度

mode

图片的模式

format

图片的格式,格式一般与图片的后缀扩展名相关

category

图片的的类别

readonly

表述图片是否为只读,值为1是)或0否),表示的是布尔值。

info

图片的信息,是一个字典

copy()

拷贝当前的图片

save()

将当前图片按指定的文件名保存,运行后会将图片按新名字保存在当前路径下(也可以指定路径)一般不需要指定format若通道数不相同,则不能通过其来转换保存

crop()

裁剪图片,返回裁剪区域的图片传入长度为4的元组,裁剪区域,超过了原图的区域,超出部分用像素格填充。

split()

对图片进行分离提取。将此图片分离成单独的颜色通道。如RGB会返回三张。如要返回一张,则用getchannel(‘’)选取需要的照片。返回的照片均为灰度

merge()

 将多个单通道的图片合并成一张多通道的图片merge(mode, bands)

blend()

将两张图片混合成一张图片blend(im1, im2, alpha)im1第一张图片,im2第二张图片,alpha浮点数0~1,混合的图片的清晰度计算公式为im1*(1.0-alpha) + image2*alpha

transpose

transpose(method)转置或翻转图片,返回转置后的图片副本

Image.FLIP_LEFT_RIGHT左右转置

Image.FLIP_TOP_BOTTOM上下转置

Image.ROTATE_x,x为表示度数的数字,表示旋转x度。

Image.TRANSPOSE

Image.TRANSVERSE左右转置旋转90

effect_spread

effect_spread(distance): 随机改变图片中像素点的位置传入数字,每个像素点朝随机方向移动规定距离,粒度感

 PS:1位像素的范围是0-1,0表示黑1表示白,中间表示灰。8位像素的范围是0-255,如RGB的(0, 0, 0)表示黑,(255, 255, 255)表示白,依此类推。

Mode的几种形式及描述

1

1位像素,黑白,每字节存储一个像素1

L

8位像素,黑白

P

8位像素,使用调色板映射到任何其他模式3x8位像素,真彩

RGB

3x8位像素,真彩

RGBA

4x8位像素,带透明蒙版的真彩

CMYK

4×8位像素,分色

YCbCr

3x8位像素,彩色视频格式

LAB

3x8位像素,L*a*b颜色空间

HSV

3x8位像素,色相,饱和度,值颜色空间HSV

I

32位有符号整数像素

F

32位浮点像素

 部分效果展示

原图

 

 crop:

from PIL import Image,ImageFilter
im=Image.open("image/fj.jpg")
image=im.crop((50,50,150,450))
image.show()

 split

from PIL import Image,ImageFilter
im=Image.open("image/fj.jpg")
a,g,h=im.split()
a.show()
g.show()
h.show()

blend

from PIL import Image,ImageFilter
im=Image.open("image/fj.jpg")
im1=Image.open("image/xx.jpg")
im=im.resize((400,400))
im1=im1.resize((400,400))
im2=Image.blend(im,im1,0.3)
im2.show()

 t

transpose

from PIL import Image,ImageFilter
im2=Image.open("image/fj.jpg")
im2=im2.transpose(Image.FLIP_TOP_BOTTOM)
im2.show()

...............................

effect_spread

from PIL import Image,ImageFilter
im2=Image.open("image/fj.jpg")
im2=im2.effect_spread(5)
im2.show()

 把5改成40

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值