PIL(Python Imaging Library)是Python常用的图像处理库,而Pillow是PIL的一个友好Fork,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等。

Pillow的文档:http://pillow.readthedocs.io/en/latest/

Pillow的github:https://github.com/python-pillow/Pillow

-----------------------------------------------------------------

0x0. Pillow的注意事项

  1. Pillow and PIL cannot co-exist in the same environment. Before installing Pillow, please uninstall PIL.
  2. Pillow >= 1.0 no longer supports import Image”. Please use from PIL import Image instead.
  3. Pillow >= 2.1.0 no longer supports import _imaging”. Please use from PIL.Image import core as _imaging instead.
  4.  
  5. Pillow < 2.0.0 supports Python versions 2.4, 2.5, 2.6, 2.7.
  6. Pillow >= 2.0.0 < 4.0.0 supports Python versions 2.6, 2.7, 3.2, 3.3, 3.4, 3.5
  7. Pillow >= 4.0.0 supports Python versions 2.7, 3.3, 3.4, 3.5, 3.6

0x1. windows安装PIL

PIL安装很麻烦,推荐下载exe直接安装

PIL官网:http://pythonware.com/products/pil/

但现在里面下载链接访问不了,我把32位和64位版本上传到博客园以供下载。

PILwin32:http://files.cnblogs.com/files/pcat/PILwin32.zip

PILwin64:http://files.cnblogs.com/files/pcat/PILwin64.zip

0x2. windows安装Pillow

  1. pip install Pillow

或者在http://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow 下载wheel文件使用pip安装

0x3. linux安装python2.7、pip

  1. sudo apt-get install python
  2. sudo apt-get install python-pip

0x4. linux安装Pillow

在linux里安装PIL不怎么建议,依赖也多,而且会有各种报错。

kali的python默认已安装了Pillow。

在debian/ubuntu里安装Pillow:

  1. sudo apt-get install python-imaging

或者

  1. sudo pip install -I --no-cache-dir -v Pillow

python-imaging安装后的支持import Image

0x5. Pillow wrapper for PIL compatibility

github地址:https://github.com/yinpeng/pillow-pil

其作者是这样介绍:他项目中也使用Pillow替代了PIL,不过PIL和Pillow的import语句不兼容导致本项目代码修改倒还好说,问题是后来使用的依赖PIL的第三方组件不兼容,我们既不想同时安装Pillow和PIL,又不想修改第三方组件的源代码,所以他写了个很简单的Pillow-PIL,使得依赖PIL的第三方组件不用修改源代码就可以使用Pillow了。安装法子如下:

  1. pip install Pillow-PIL

0x6. PIL一些报错

  1. ImportError:The _imagingft C module is not installed

这个是在windows里安装PIL所报错,建议直接exe安装。

  1. PIL.Image.open() IOError: cannot identify image file

首先检查图片是不是正确的,如果各种检查过还是有问题建议重装PIL

0x7. Pillow报KeyError问题

  1. python
  2. >>> import Image
  3. >>> Image.init()
  4. 1
  5. >>> Image.SAVE.keys()
  6. ['PCX', 'HDF5', 'EPS', 'MSP', 'XBM', 'WEBP', 'BUFR', 'PPM', 'BMP', 'TGA', 'ICO', 'TIFF', 'JPEG', 'SPIDER', 'GIF', 'GRIB', 'IM', 'FITS', 'PDF', 'WMF', 'MPO', 'PALM', 'JPEG2000', 'PNG']

如果Image.SAVE.keys()输出为空,则说明没有找到save format key,在生成图片时就会报KeyError, 此时就需要把import Image改成from PIL import Image

PIL、Pillow安装使用方法的更多相关文章

  1. python的PIL模块安装

    一.Centos安装PIL #尤其重要,否则会报错 yum install python-devel yum install libjpeg libjpeg-devel zlib zlib-devel ...

  2. 安装Birt方法

    安装BIRT 方法: 博客地址:http://www.mamicode.com/info-detail-850588.html 注意:在 Install new Software 中输入地址:http ...

  3. linux php安装扩展方法 查找配置文件

    如何在linux中查看nginx.apache.php.mysql配置文件路径了,如果你接收一个别人配置过的环境,但没留下相关文档.这时该怎么判断找到正确的加载文件路径了.可以通过以下来判断 1.判断 ...

  4. node安装插件方法

    node安装插件方法有几种,这里列出常用的两种方法: 方法1: 进入要安装插件的目录,直接用 npm 软件安装包安装,如(安装express): cd /project npm install -g ...

  5. windows server 2008见安装IIS方法(解决)

    windows server 2008见安装IIS方法(解决) 刚开始有点蒙,后来才知道原来如此.! . 右键点击[我的电脑]--[管理]--[字符]--[加入角色]--仅落后win7像.啊! 版权声 ...

  6. elasticsearch+kibana+metricbeat安装部署方法

    elasticsearch+kibana+metricbeat安装部署方法 本文是elasticsearch + kibana + metricbeat,没有涉及到logstash部分.通过beat收 ...

  7. RHEL6下获取安装包(RPM)而不安装的方法

    RHEL6下获取安装包(RPM)而不安装的方法 有时候我们只能在某个机器上网获得RPM安装包,如何将RPM包在不能上网的内网机器安装,就需要能将安装包下载到本地而不安装,然后再把这些包复制到内网机器, ...

  8. 哈希长度扩展攻击(Hash Length Extension Attack)利用工具hexpand安装使用方法

    去年我写了一篇哈希长度扩展攻击的简介以及HashPump安装使用方法,本来已经足够了,但HashPump还不是很完善的哈希长度扩展攻击,HashPump在使用的时候必须提供original_data, ...

  9. windows Sever 2012下Oracle 12c安装配置方法图文教程

    windows Sever 2012下Oracle 12c安装配置方法图文教程 Oracle 12c安装配置方法图文教程,具体内容如下 1.我们开启虚拟机 2.Windows Sever 2012启动 ...

随机推荐

  1. Duplicate entry '0' for key 'PRIMARY'

    一般使用ORM时,提交新增实体时, mysql会出现此错误:Duplicate entry '0' for key 'PRIMARY' 原因是插入语句,未提供主键的值,且主键是非自增长的. 解决办法是 ...

  2. C# 实现连连看功能

    本文是利用C#实现连连看的小例子,以供学习分享使用.如有不足之处,还望指正. 思路: 初始化布局(横竖十行十列,共100个单元格,每一个格一个按钮,背景图为水果图片,随机生成) . 初始化对应棋盘(用 ...

  3. leetcode-28.实现strStr()

    leetcode-28.实现strStr() 题意 实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字 ...

  4. Caused by:org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type "" available: expected at least 1 bean which qualifies as autowire candidate

    项目使用spring, mybatis.因为分了多个模块,所以会这个模块引用了其它模块的现在,结果使用Junit测试的时候发现有两个模块不能自动注入dao和service问题.解决后在此记录一下. 解 ...

  5. css图片垂直水平居中及放大(实现水平垂直居中的效果有哪些方法?)

    实现水平垂直居中方法有很多种: 一.万能法: 1.已知高度宽度元素的水平垂直居中,利用绝对定位和负边距实现. <style type="text/css"> .wrap ...

  6. MongoDB数据创建与使用

    MongoDB数据创建与使用 创建数据库 代码功能:读取本地文本文件,并保存到数据库中 import pymongo #连接mongo数据库 client = pymongo.MongoClient( ...

  7. Sql查询今天、本周和本月的记录(时间字段为时间戳)

    工作中遇到的问题,小结一下 查询今日添加的记录: select * from [表名] where datediff(day,CONVERT(VARCHAR(20),DATEADD(SECOND,[时 ...

  8. 区块链会与io域名有什么关系

    为什么区块链会与io域名有这么大的联系? 近几年,区块链成为各国央行到国内外各大商业银行.联合国.国际货币基金组织到许多国家政府研究机构讨论的热点,"区块链+"应用创新正在成为引领 ...

  9. docker容器持久化卷讲解

    docker容器自身存储数据效率比较低,因此我们为了提高磁盘IO的性能等,需要在容器中挂载一个外部存储设备.关于讲解大致如下: Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中 ...

  10. php学习----基本介绍及数据类型

    php 官方手册:http://php.net/manual/zh/ 1.PHP(全称 Hypertext Preprocessor,超文本预处理器的字母缩写)是一种服务器端脚本语言,它可嵌入到 HT ...