首页 > 编程语言 > 详细

Python PIL库学习笔记

时间:2019-04-11 01:06:41      阅读:175      评论:0      收藏:0      [点我收藏+]

1.PIL简介

Python Imaging Library(缩写为PIL)(在新的版本中被称为Pillow)是Python编程语言的开源库,它增加了对打开,操作和保存许多不同图像文件格式的支持。它适用于Windows,Mac OS X和Linux。可惜的是它在2009年停止更新了。

不过,幸运的是一个名为Pillow的后继项目已经分叉了PIL存储库并添加了Python 3.x支持。这个分支已被用作Linux发行版中原始PIL的替代品,包括Debian 和Ubuntu。

PIL库由于它对图像处理的优秀,已经成为Python平台事实上的图像处理标准库了。

 

2.PIL(Pillow)的用法

2.1 PIL库Image类

from PIL import Image    #Image 是 PIL 最重要的类,使用前要先引用

而 open()是 Image 类中最常用的模块,其功能为打开一个图片文件。使用如下:

 

>>> from PIL import Image
>>> im = Image.open("rode。jpg")     #打开图片 rode。jpg

 

如果读取图片成功,可以试着对其进行一些操作。不妨我们试着输出图片的一些信息:

>>> from __future__ import print_function      #引用格式识别函数
>>> print(im.format, im.size, im.mode)         #输出图片的格式,大小,图像色彩模式(彩色为 RGB,灰色为 L)

还有一个常用功能,显示图片 show()。

im.show()              #显示图片

 

 

对GIF图提取各帧的图像,并保存图片。

 

from PIL import Image
import os

gifFileName = hand.gif

im = Image.open(gifFileName)            #使用Image模块的open()方法打开gif动态图像时,默认是第一帧
pngDir = gifFileName[:-4]
os.mkdir(pngDir)                        #创建存放每帧图片的文件夹

try:
  while True:
                            
    current = im.tell()                #保存当前帧图片
  im.save(pngDir+/+str(current)+.png)  
  im.seek(current+1)           #获取下一帧的图片
except EOFError: 

  pass

 2.2 对图片进行一些处理

from PIL import Image

im = Image.open("rode.jpg")

r, g, b = im.split()

om = Image.merge("RGB",(b, g, r))    #让图片变为蓝色色调

om.save(rodeBGR.jpg)


im = Image.open("rode.jpg").convert("L")   #由RGB色彩体系转变为灰白体系

im.save(rodegray.jpg)


im = Image.open("rodegray.jpg")

im.thumbnail((628,628))                           #改变图片的大小

im.save("rodemini.jpg")

 

技术分享图片   

                              原图    

技术分享图片   

                        变为蓝调 

 技术分享图片 

                       变为灰白         

 技术分享图片

            缩小

                                                                                                                                                                                               

 

 要对图片做进一步处理,就要引用 ImageFilter 类了

from PIL import ImageFilter

im = Image.open(rode.jpg)

om = im.filter(ImageFilter.CONTOUR)              #轮廓效果

om.save(rodeContour.jpg)



om = im.filter(ImageFilter.BLUR)                  #模糊化处理

om.save(rodeBlur.jpg)



im = Image.open(‘rode.jpg)

om = im.filter(ImageFilter.EMBOSS)               #浮雕效果

om.save(‘rodeEmboss.jpg)

 

     技术分享图片 

                           原图      

    技术分享图片     

                         轮廓 

   技术分享图片   

                        模糊化 

   技术分享图片

                         浮雕

                                                                                                                                                                                                                                                

 

Python PIL库学习笔记

原文:https://www.cnblogs.com/justlikecode/p/10687145.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!