python2.6如何使用PIL
Posted 宇之逸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python2.6如何使用PIL相关的知识,希望对你有一定的参考价值。
由于生产环境是centos6.5,开发环境为系统默认的python2.6.6且在内网,调用PIL时存在以下问题:
1、在开发环境使用python2.6.6 的pip安装pillow包时会出现required = {‘jpeg‘, ‘zlib‘}的依赖安装错误
2、在开发环境使用python2.7的pip安装的pillow包可以在python2.7环境正常使用,但在python2.6.6环境不能正常使用
3、使用PIL官网的2.6的zip源码包安装,可以正常安装,但使用会出现no _imaging c module错误
最终解决方案:
1、开发可上网的python2.6.6环境下缓存python-imaging-1.1.6-19.el6.x86_64此包,拷贝至生产环境使用rpm安装即可
开发环境使用yum紧下载方式缓存包:
# yum install --downloadonly --downloaddir=abs_downpath python-imaging -y
生产环境使用rpm安装:
# rpm -ivh python-imaging-1.1.6-19.el6.x86_64.rpm
2、开发可上网的python2.6.6环境下使用yum直接安装python-imaging此包,将产生的库文件拷贝至生产环境使用即可
开发环境使用yum安装包并获取产生的库文件:
# yum install python-imaging -y
# rpm -ql python-imaging
可以发现库文件在/usr/lib64/python2.6/site-packages/PIL目录
rpm包和库文件可在百度云下载 https://pan.baidu.com/s/1Yb8r6rgeH5DIKwuK6mGdFw
图片处理要求:
1、图片大于500K时缩放至500K内
2、返回图片的二进制内容
结果代码:
1 # coding: utf8 2 import StringIO 3 ‘‘‘以PIL.Image.open(file)方法使用会报错‘‘‘ 4 from PIL import Image 5 6 def imgResize(imgPath): 7 ‘‘‘ 8 入参:图片地址 9 出参:小于500K的图片二进制内容 10 ‘‘‘ 11 img = Image.open(imgPath) 12 cache = StringIO.StringIO() 13 w,h = img.size 14 img.resize((w/2,h/2)).save(cache, ‘JPEG‘) 15 timg = cache.getvalue() 16 if len(timg) > 500 * 1000: 17 return imgResize(timg) 18 else: 19 return timg
以上是关于python2.6如何使用PIL的主要内容,如果未能解决你的问题,请参考以下文章