ImportError: No module named Image IOError: decoder zip not available

来源:互联网 发布:头像源码怎么用 编辑:程序博客网 时间:2024/06/07 19:10

IOError: decoder zip not available


使用python来处理图片是非常方便的,下面提供一小段python处理图片的代码,需要安装图像处理工具包PIL(Python Image Library)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#coding=utf-8
 
importImage
importurllib2
importStringIO
importos
 
#改变图片大小
defresize_img(img_path):
    try:
        img=Image.open(img_path)
        (width,height)=img.size
        new_width=200
        new_height=height *new_width /width
        out=img.resize((new_width,new_height),Image.ANTIALIAS)
        ext=os.path.splitext(img_path)[1]
        new_file_name='%s%s' %('small',ext)
        out.save(new_file_name,quality=95)
    exceptException,e:
        printe
 
#改变图片类型
defchange_img_type(img_path):
    try:
        img=Image.open(img_path)
        img.save('new_type.png')
    exceptException,e:
        printe
 
#处理远程图片
defhandle_remote_img(img_url):
    try:
        request=urllib2.Request(img_url)
        img_data=urllib2.urlopen(request).read()
        img_buffer=StringIO.StringIO(img_data)
        img=Image.open(img_buffer)
        img.save('remote.jpg')
        (width,height)=img.size
        out=img.resize((200,height*200 / width),Image.ANTIALIAS)
        out.save('remote_small.jpg')
    exceptException,e:
        printe
 
if__name__ =='__main__':
    img_path='test.jpg'
    resize_img(img_path)
    change_img_type(img_path)
    img_url='http://img.hb.aicdn.com/042f8a4a70239f724ff7b9fa0fc8edf18658f41022ada-WcItWE_fw554'
    handle_remote_img(img_url)

可能会遇到的问题

ImportError: No module named Image

解决办法:安装Python Imaging Library(PIL)

1
sudo pip PIL

安装PIL出现:
— JPEG support not available

— ZLIB (PNG/ZIP) support not available

— FREETYPE2 support not available

操作jpeg图片和png图片出现:

IOError: decoder jpeg not available 和 IOError: encoder zip not available

解决办法:
(1) 删除已经安装的PIL

pip uninstall PIL

(2) 安装相关库

1
2
3
4
sudoapt-get installlibjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev
sudoln -s /usr/lib/x86_64-linux-gnu/libjpeg.so/usr/lib/
sudoln -s /usr/lib/x86_64-linux-gnu/libfreetype.so/usr/lib/
sudoln -s /usr/lib/x86_64-linux-gnu/libz.so/usr/lib/



(3) 重新安装PIL

1
sudopip PIL

终端出现:

— JPEG support available
— ZLIB (PNG/ZIP) support available
— FREETYPE2 support available

现在试试,已经ok了



0 0
原创粉丝点击