enhance!图片处理_python PIL Image 图片处理的基础使用方法Tutorial (二)

一、Image的模式mode转换

常用模式 L RGB RGBA CMYK

from PIL import Image#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")im=im.convert("L")im.show()
c6b4633ed84aa00bcc562e35226cb6fb.png

im.convert("L")显示的图片

二、图片更改效果

使用图片过滤器更改效果 使用ImageFilter模块

from PIL import Imagefrom PIL import ImageFilter#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")im = im.filter(ImageFilter.CONTOUR)im.show()im = im.filter(ImageFilter.EMBOSS)im.show()
5205fefb145df22ae6dc138a165da9dc.png

ImageFilter.CONTOUR使用的效果

1e706bd46fd0ba66560315f8f240361e.png

ImageFilter.EMBOSS

对单个像素点的修改效果

from PIL import Image#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")r, g, b = im.split()#更改r 图层的像素点r=r.point(lambda x:x if x<100 else 255)im = Image.merge("RGB", (r,g,b))im.show()
e7b467a090ff2eb3b0748e25f2057098.png

更改r 图层的像素点的效果图片

使用ImageEnhance模块修改图片效果

增加图片90%对比度

增加90%对比度from PIL import Imagefrom PIL import ImageEnhance#不需要关注文件格式,PIL会自动处理im = Image.open("background.jpg")enh = ImageEnhance.Contrast(im)#增加90%对比度enh.enhance(1.9).show()
9cb3ddf5765e2cd9a65f641eee54c93e.png

增加90%对比度

三、处理动图、使用Image的tell、seek方法或使用ImageSequence模块

52c184c2a653a54acdada4ec46dfac28.gif

预生成的gif图片

from PIL import Image#不需要关注文件格式,PIL会自动处理im = Image.open("1586920674140.gif")print(im)## 获取第二张图片,使im的指针指向的二张图片im.seek(1) #获取当前位置 print结果为1print(im.tell())im.show()

获取的index为1的图片

9ab35ae8b9d467ec1d7b524bf3015df9.png

使用ImageSequence模块实现

from PIL import Imagefrom PIL import ImageSequence#不需要关注文件格式,PIL会自动处理im = Image.open("1586920674140.gif")for frame in ImageSequence.Iterator(im):    print(frame)    frame.show()

四、更多读取图片的方式

通过二进制文件指针文件读取

from PIL import Imagewith open("background.jpg", "rb") as fp:    im = Image.open(fp)    im.show()

通过字符串读取

from PIL import Imagefrom io import BytesIO as Bytes2Datawith open("background.jpg","rb") as fp:    s=fp.read()    iostr=Bytes2Data(s)    newim = Image.open(iostr)    newim.show()

通过压缩包形式如tar 形式读取

from PIL import Image, TarIOfp = TarIO.TarIO("bg.tar", "backgound.jpg")im = Image.open(fp)im.show()
a6f07098d77404980dcd170c5dbaeae8.png

五、预处理图片draft

因为open方法时懒加载,在没有实际使用时如 show 或save等方法时,可以使用draft 方法预处理

from PIL import Imageim = Image.open("background.jpg")#im.show()print("original =", im.mode, im.size)im.draft("L", (100, 100))print("draft =", im.mode, im.size)im.show()
87deb6973aaed6b9040baefdcfb2a329.png

若取消注释im.show()

from PIL import Imageim = Image.open("background.jpg")im.show()print("original =", im.mode, im.size)im.draft("L", (100, 100))print("draft =", im.mode, im.size)im.show()
2fd34c59d39b6f5731355c12dcad0f6d.png

参考网站

https://pillow.readthedocs.io/en/5.2.x/handbook/tutorial.html

#科技青年# #423头条知识节#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值