PIL库编译备忘录

Python Version:2.7.6

PIL Version:1.1.7

Zlib Version: 1.2.8



PIL库在编译前可通过Setup.py为其添加一些额外特性,以支持更多的功能。

1.17版中支持的特性有5种,分别是zlib、tcl、jpeg、freetype、lcms。



下面以为PIL添加zlib支持为例说明具体的添加步骤。


1、在Setup.py中有个定义在文件首部的变量:ZLIB_ROOT,其指向zlib库的zlib.lib库文件跟.h文件的目录。

ZLIB_ROOT默认值为None,也就是说PIL默认是没有zlib支持的。



2、为了得到zlib库文件和头文件,需要编译zlib库,以下编译步骤适用于在32位机器上使用VS2008编译Zlib-1.2.8。

2.1、下载Zlib源码,解压至一目录,例如:E:\zlib-1.2.8。

2.2、运行E:\zlib-1.2.8\contrib\masmx86\bld_ml32.bat,编译下面步骤需要用到的一些.obj。

2.3、使用VS2008打开E:\zlib-1.2.8\contrib\vstudio\vc9下的VS解决方案文件zlibvc.sln。

2.4、将当前解决翻案的编译配置修改为Relase。

2.5、右键zlibstat工程,打开属性页,在配置属性->C/C++->预处理器->预处理器定义中去掉ZLIB_WINAPI。这么做的原因是ZLIB_WINAPI宏定义了Zlib库使用WINAPI来封装所有的接口,这将导致链接生成PIL库时无法链接zlibstat.lib,出现找不到函数的错误。

2.6、右键解决方案,重新生成解决方案。

2.7、在E:\zlib-1.2.8\contrib\vstudio\vc9\x86\ZlibStatRelease目录中找到上步生成的Zlib静态库文件zlibstat.lib,改名成zlib.lib后复制到E:\zlib-1.2.8,此目录下包含了Zlib的所有头文件。


3、打开PIL源码目录下的setup.py,修改其中的ZLIB_ROOT变量值,令其指向zlib库文件与头文件的位置,例如:

ZLIB_ROOT = 'E:\\zlib-1.2.8。'


4、在PIL源码目录下运行python setup.py build --force编译PIL。后面的--force选项表示强制编译,覆盖之前的编译结果。


5、运行python setup.py install --force进行安装。


6、使用如下代码测试由Zlib支持的PIL:

import Image
im = Image.open('test.png')
im.show()

如果没有出现异常:“IOError: decoder zip not available”,则表明Zlib特性添加成功。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值