没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
14页
Python 的图像处理通常用 Pillow(Python Imaging Library(Fork))来进行。Pillow 由 PIL(Python Imaging Library)的分支工程开发而来。由于 PIL 已经停止开发及维护,所以如今Pillow 成为了主流。它支持 JPEG、PNG、GIF、BMP 等多种图像格式。本书使用的是 Pillow 的2.6.1 版本。
资源推荐
资源详情
资源评论
15.3 图像处理
Python 的图像处理通常用 Pillow(Python Imaging Library(Fork))来进行。Pillow 由 PIL
(Python Imaging Library)的分支工程开发而来。由于 PIL 已经停止开发及维护,所以如今
Pillow 成为了主流。它支持 JPEG、PNG、GIF、BMP 等多种图像格式。本书使用的是 Pillow 的
2.6.1 版本。
Pillow
http://pillow.readthedocs.org/
15.3.1 安装 Pillow
Pillow 与多种处理图像数据的程序库存在依赖关系,因此安装时需要多加注意。目前 Pillow
在 PyPI 上提供了面向 Windows 和 OS X 的 wheel 包。在 Windows、OS X 上安装(包括用 pip 命
令安装)时不需要进行编译。如果使用的是其他平台,那么由于需要从 sdist 进行 C 扩展的编
译,所以必须准备编译器和各种图像处理库。
有 wheel 可用的平台
如果是 OS X 和 Windows,只需像 LIST 15.18 这样使用 pip install 安装 wheel 包即可。
LIST 15.18 在 OS X 上安装 Pillow
$ pip install pillow==2.6.1
Downloading/unpacking pillow==2.6.1
Downloading Pillow-2.6.1-cp27-none-macosx_10_6_intel.macosx_10_9_intel.
macosx_10_9_x86_64.whl (2.8MB): 2.8MB downloaded
Installing collected packages: pillow
Successfully installed pillow
Cleaning up...
从源码构建
接下来准备进行 Pillow 编译时所需的库。下面以 Ubuntu 14.04 为例进行学习。
首先,因为需要编译 C 扩展,所以需要一些基本的开发工具。我们先来确认一下 1.1 节中
15.3 图像处理
370
第 4 部分 加速开发的技巧
的安装(LIST 15.19)。
LIST 15.19 检查设置以便进行 python 的 C 扩展编译
$ pkg-config python-2.7 --libs --cflags
-I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu/python2.7 -lpython2.7
另外,图像格式和字体等的支持需要用到下述程序库。
支持对象 库
JPEG libjpeg
-
dev
OpenJPEG libopenjpeg
-
dev
PNG zlib1g
-
dev
TIFF libtiff5
-
dev
webp libwebp
-
dev
字体 libfreetype6
-
dev
色彩管理 liblcms2
-
dev
执行 LIST 15.20 中的命令,统一安装 Pillow 需要的程序包。
LIST 15.20 安装 Pillow 需要的程序包
$ sudo apt-get install libjpeg-dev libopenjpeg-dev zlib1g-dev libtiff5-dev
libfreetype6-dev libwebp-dev liblcms2-dev
现在所需工具和库已经齐全,可以用 pip 进行安装了(LIST 15.21)。
LIST 15.21 用 pip 命令安装 Pillow
$ pip install pillow==2.6.1
安装时会显示支持的图像格式等,我们可以借此查看想要的功能是否已经生效。LIST 15.22
是除 TKINTER 以外的所有功能均生效的例子。
LIST 15.22 查看支持的功能
running build_ext
--------------------------------------------------------------------
PIL SETUP SUMMARY
--------------------------------------------------------------------
version Pillow 2.6.1
platform linux2 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2]
--------------------------------------------------------------------
*** TKINTER support not available
第 15 章 方便好用的 Python 模块
371
--- JPEG support available
--- OPENJPEG (JPEG2000) support available (2.1.3)
--- ZLIB (PNG/ZIP) support available
--- LIBTIFF support available
--- FREETYPE2 support available
--- LITTLECMS2 support available
--- WEBP support available
--- WEBPMUX support available
--------------------------------------------------------------------
To check the build, run the selftest.py script.
NOTE
Pillow●2.6.1 无法识别 Ubuntu● 14.04 上安装的 libopenjpeg
-
dev。今后的版本中应该会修复
这个问题。
如果应用不涉及 Tkinter 模块的图像,可以不用管 TKINTER 的支持问题。另外,安装
Python 时,如果 Tkinter 模块并未生效,同样无法支持 TKINTER。
15.3.2 图像格式转换
图像文件的格式转换通过在 Image 类的 save 方法的传值参数中指定格式并保存来完成。下
面,我们打开当前目录下名为 python.gif 的图像文件,将其转换为 JPEG 格式,并保存在
python_convert.jpg 文件中。具体代码如下。
# coding: utf-8
from PIL import Image
def main():
# 打开文件获取 Image 对象
image = Image.open('python.gif')
# 模式转换为 RGB
image_rgb = image.convert('RGB')
# 图像保存至文件
image_rgb.save('python_convert.jpg', 'jpeg')
if _ _name_ _ == '_ _main_ _':
main()
可以看到,程序在读取完文件之后将图像模式转为了 RGB。
在 GIF 以及不足 256 色的 PNG、BMP 等格式中,颜色信息都保存在调色板数据块里。这
NOTE
Pillow●2.6.1 无法识别 Ubuntu● 14.04 上安装的 libopenjpeg
-
dev。今后的版本中应该会修复
这个问题。
如果应用不涉及 Tkinter 模块的图像,可以不用管 TKINTER 的支持问题。另外,安装
Python 时,如果 Tkinter 模块并未生效,同样无法支持 TKINTER。
剩余13页未读,继续阅读
资源评论
好知识传播者
- 粉丝: 493
- 资源: 4204
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功