Anaconda无法用PIL,我用Pillow替代

1 问题描述

我想利用文字生成图片信息,以方便运行 LATEX 的加载图片的demo。我自然想到了利用Python来执行这个任务,因为它是我使用过的众多编程语言中的最喜欢的语言之一,可以用爱不释手形容都不为之过。于是从网络搜到一个解决方案,将代码保存为genFig.py:

# -*- coding: utf-8 -*-
import os
import Image, ImageFont, ImageDraw

text = u"这是一段测试文本,test 123。"

im = Image.new("RGB", (300,50),(255,255,255))
dr = ImageDraw.Draw(im)
font = ImageFont.truetype(os.path.join("fonts","simsun.ttc"),18)

dr.text((10,5),text, font=font, fill="#000000")

im.show()
im.save("t.png")

于是接着在命令行中输入python genFig.py,给出错误提示:没有moduel image。我自然就想到了没安装该包,因为我使用的是Anaconda套件,亦即该套件没有安装包image。于是我就利用Anaconda安装python包的方法,采用命令conda install image,回复的是找不到该包。我判断PIL是一个整体,需要整体安装。于是我在pil网站找到了PIL的安装文件,如下图:
这里写图片描述
这是一个exe文件,不受conda的托管。于是,按照通常Windows系统下软件的安装方法,就把其成功安装了,参见下面的图:
这里写图片描述
这里写图片描述

重新回到console中,运行程序genFig.py,如下图:
这里写图片描述
可以看出,仍然出错。这里面肯定有什么原因,包的安装也不如Ubuntu中来的方便,安装后还是不能运行上述程序。我又利用import _imaging检查了一下,也没发现上面异常,如下图:
这里写图片描述

带着小小的失望,我就继续在网络看别人对上述错误的解决方法是什么。

2 解决方法

在网络上搜索了一会,发现好多人在Ubuntu中也遇到相应的问题,因此给出的方案都是针对Unix或者Ubuntu下面的。但是,我在stackoverflow for c module is not installed页面上的一个不起眼的语句上发现了Pillow,如下图:
这里写图片描述
我想Pillow也许是运行上节代码的替代方案。那就大胆地探索吧!

2.1 Pillow的安装

pythonlibs网站找到Pillow的安装文件,如下图:
这里写图片描述
将其下载到一个文件夹中,然后在该文件夹中启动console程序,在其中运行命令pip install Pillow-3.1.0-cp27-none-win32.whl安装,如下图:
这里写图片描述
因为whl格式的文件需要采用pip程序来执行安装,这是模仿了Linux系统下面的包的安装方式。

2.2 将第1节代码变为Pillow下的库的使用

注意:要想使用Pillow库中的module (Image, ImageFont, ImageDraw etc.),需使用如下命令引入:

from PIL import Image, ImageFont, ImageDraw

于是,我们就将第1节代码改为:

# -*- coding: utf-8 -*-
import os
from PIL import Image, ImageFont, ImageDraw

text = u"这是一段测试文本,test 123。"

im = Image.new("RGB", (300,50),(255,255,255))
dr = ImageDraw.Draw(im)
font = ImageFont.truetype(os.path.join("fonts","simsun.ttc"),18)

dr.text((10,5),text, font=font, fill="#000000")

im.show()
im.save("t.png")

2.3 运行结果

然后再在命令行中执行经过修改后的2.2节中代码,可以看到执行成功,如下图:
这里写图片描述

3 总结

看来,PIL确实是一个好用的图形处理库。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值