Python图像处理库PIL的ImageFile模块介绍
2016-02-27 21:23
831 查看
ImageFile模块为图像的打开和保存提供了一些函数。
另外,它还提供了一个逐块解码图像的Parser类。这个类实现了与标准sgmllib和xmllib模块一样的接口。
一、ImageFile模块的函数
1、
Parser
定义:ImageFile.Parser()⇒ Parser instance
含义:创建一个解析器对象。解析器不能被重复使用。
二、ImageFile模块的方法
1、
Feed
定义:parser.feed(data)
含义:为解析器填充一个字符串。这个方法可能会引起IOError异常。
2、
Close
定义:parser.close()⇒ image or None
含义:告诉解析器完成解码。如果解析器正在解码一张图像,将返回一个图像对象。否则,该方法会产生一个IOError异常。
注意:如果文件没有被识别,在方法close()中,解析器将产生一个IOError异常。如果文件能够被识别,但不能解码(例如,如果数据被破坏了,或者它使用了不支持的压缩方式),解析器将尽快在方法feed()或者close()中产生一个IOError异常。
三、ImageFile模块的使用实例
使用函数ImageFile.Parser()创建了解析器的实例,通过方法feed()将从文件中读取的数据填充到解析中。最后调用方法close(),如果填充到解析器中的数据没有错误,将返回一张图像,即图像im。图像im与原始图像有很大区别。解析器会对原始图像进行解码,然后再按照PIL自己的算法重新进行JPEG编码。新产生的图像比原始图像小了三十多K
bytes。但两张图像,很难通过肉眼发现不同之处。
原始图像如下:
![](http://img.blog.csdn.net/20160227212230387?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图像im如下:
另外,它还提供了一个逐块解码图像的Parser类。这个类实现了与标准sgmllib和xmllib模块一样的接口。
一、ImageFile模块的函数
1、
Parser
定义:ImageFile.Parser()⇒ Parser instance
含义:创建一个解析器对象。解析器不能被重复使用。
二、ImageFile模块的方法
1、
Feed
定义:parser.feed(data)
含义:为解析器填充一个字符串。这个方法可能会引起IOError异常。
2、
Close
定义:parser.close()⇒ image or None
含义:告诉解析器完成解码。如果解析器正在解码一张图像,将返回一个图像对象。否则,该方法会产生一个IOError异常。
注意:如果文件没有被识别,在方法close()中,解析器将产生一个IOError异常。如果文件能够被识别,但不能解码(例如,如果数据被破坏了,或者它使用了不支持的压缩方式),解析器将尽快在方法feed()或者close()中产生一个IOError异常。
三、ImageFile模块的使用实例
from PIL import ImageFile fp = open("D:\\Code\\Python\\test\\img\\test02.jpg", "rb") p = ImageFile.Parser() while 1: s = fp.read(1024) if not s: break p.feed(s) im = p.close() im.save("D:\\Document\\mdoc\\python\\pic\\10\\file_test.jpg"); im.show()
使用函数ImageFile.Parser()创建了解析器的实例,通过方法feed()将从文件中读取的数据填充到解析中。最后调用方法close(),如果填充到解析器中的数据没有错误,将返回一张图像,即图像im。图像im与原始图像有很大区别。解析器会对原始图像进行解码,然后再按照PIL自己的算法重新进行JPEG编码。新产生的图像比原始图像小了三十多K
bytes。但两张图像,很难通过肉眼发现不同之处。
原始图像如下:
图像im如下:
相关文章推荐
- FP-Growth算法之频繁项集的挖掘(python)
- python短域名数据分析框架
- python34 访问MySQL数据库
- python lambda表达式
- Python的StringIO模块和cStringIO模块
- python实现高精度减法
- python实现高精度加法
- python实现高精度乘法
- python在不同层级目录import模块的方法
- python中的排序
- python字典
- 解决python递归栈溢出
- 使用Python list通过递归实现一个表达式计算器
- 应用python对校园通知的更新进行推送
- 王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包
- 王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包
- Python教程
- Python的zip函数
- 两个版本的python在同一系统下的安装
- 使用Python的SnowNLP模块实现情感分析