安装PIL,编译支持jpeg、 png
来源:互联网 发布:js读取配置文件config 编辑:程序博客网 时间:2024/05/05 16:07
这段时间做到图像处理,需要安装PIL,网上找到了一个很好的安装例子,别人用的好像很好,只是我这里好像不好用,需要做一点点简单的改动,如下:
http://cn-popeye.iteye.com/blog/1236691
PIL是python理想的图片处理module,但是想要良好的支持各种图片,还需要检查一下几步,否则会提示:IOError: decoder jpeg not available之类的。
我的环境:Linux mint 11 amd64 / Python2.7
第一步:安装zlib png freetype jpeg
- install zlib (ubuntu 官方源没有zlib,别想apt-get了)
下载zlib,(zlib.net已墙,可以去SF.net),url:http://sourceforge.net/projects/libpng/files/zlib/1.2.5/zlib-1.2.5.tar.gz/download?use_mirror=superb-dca2
shell:
$ tar -xvzf zlib-1.2.5.tar.gz
$ cd zlib-1.2.5
$ ./configure --prefix=/usr/local (/usr/local 是原文的路径设置,在我这不好用,要设置为 /usr/local/zlib ,其实就是把文件单独放到一个文件夹里,以下都是)
$ make
$ sudo make install
$ cd zlib-1.2.5
$ ./configure --prefix=/usr/local (/usr/local 是原文的路径设置,在我这不好用,要设置为 /usr/local/zlib ,其实就是把文件单独放到一个文件夹里,以下都是)
$ make
$ sudo make install
- install png(忘记apt-get吧)
shell:
$ wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-1.5.13.tar.gz (如果不能下载,就在网上重新下载)
$ tar -xvzf libpng-1.5.13.tar.gz
$ cd libpng-1.5.13
$ ./configure --prefix=/usr/local (/usr/local 改为 /usr/local/png )
$ make
$ sudo make install
$ tar -xvzf libpng-1.5.13.tar.gz
$ cd libpng-1.5.13
$ ./configure --prefix=/usr/local (/usr/local 改为 /usr/local/png )
$ make
$ sudo make install
- install freetype (忘记apt-get吧)
shell:
$ wget http://nchc.dl.sourceforge.net/project/freetype/freetype2/2.4.7/freetype-2.4.7.tar.gz
$ tar -xvzf freetype-2.4.7.tar.gz
$ cd freetype-2.4.7/
$ ./configure --prefix=/usr/local ( /usr/local 改为 /usr/local/freetype )
$ make
$ make install
$ tar -xvzf freetype-2.4.7.tar.gz
$ cd freetype-2.4.7/
$ ./configure --prefix=/usr/local ( /usr/local 改为 /usr/local/freetype )
$ make
$ make install
- install jpeg (忘记apt-get吧)
shell:
$ wget http://www.ijg.org/files/jpegsrc.v8c.tar.gz
$ tar -xvzf jpegsrc.v8c.tar.gz
$ cd jpeg-8c/
$ ./configure --prefix=/usr/local (/usr/local 改为 /usr/local/jpeg )
$ make
$ sudo make install
$ tar -xvzf jpegsrc.v8c.tar.gz
$ cd jpeg-8c/
$ ./configure --prefix=/usr/local (/usr/local 改为 /usr/local/jpeg )
$ make
$ sudo make install
第二步:安装需要的 devel库(现在是想起apt-get的时候了)
shell:
$ sudo apt-get install libjpeg8-dev
$ sudo apt-get install libpng12-dev
$ sudo apt-get install libfreetype6-dev
$ sudo apt-get install zlib1g-dev
$ sudo apt-get install libpng12-dev
$ sudo apt-get install libfreetype6-dev
$ sudo apt-get install zlib1g-dev
第三步:安装 PIL( Python Imaging Library )
shell 写道
$ wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz
$ tar -xvzf Imaging-1.1.7.tar.gz
$ cd Imaging-1.1.7/
$ tar -xvzf Imaging-1.1.7.tar.gz
$ cd Imaging-1.1.7/
修改setup.py文件:
$ nano setup.py
修改如下: (下面的路径都改成对应的上面设置的路径,后面接lib,注意,这里ZLIB_ROOT要分别写出 zlib 和 png 的路径)
JPEG_ROOT = "/usr/local/lib" (改为 JPEG_ROOT = "/usr/local/jpeg/lib" )
ZLIB_ROOT = "/usr/local/lib" ( 改为 ZLIB_ROOT = "/usr/local/zlib/lib", "/usr/local/png/lib" )
FREETYPE_ROOT = "/usr/local/lib" (改为 FREETYPE_ROOT = "/usr/local/freetype/lib" )
修改如下: (下面的路径都改成对应的上面设置的路径,后面接lib,注意,这里ZLIB_ROOT要分别写出 zlib 和 png 的路径)
JPEG_ROOT = "/usr/local/lib" (改为 JPEG_ROOT = "/usr/local/jpeg/lib" )
ZLIB_ROOT = "/usr/local/lib" ( 改为 ZLIB_ROOT = "/usr/local/zlib/lib", "/usr/local/png/lib" )
FREETYPE_ROOT = "/usr/local/lib" (改为 FREETYPE_ROOT = "/usr/local/freetype/lib" )
检查是否支持:
$ python setup.py build_ext -i
running build_ext
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available -----------------------> OK!
--- ZLIB (PNG/ZIP) support available -----------------------> OK!
--- FREETYPE2 support available -----------------------> OK!
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
running build_ext
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available -----------------------> OK!
--- ZLIB (PNG/ZIP) support available -----------------------> OK!
--- FREETYPE2 support available -----------------------> OK!
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
正式安装:
$ python setup.py build
$ sudo python setup.py install
$ sudo python setup.py install
最后一步:验证
- #!/usr/bin/env python
- # -*- coding:utf-8 -*-
- import Image
- picPath = '~/images/1212.jpg'
- im = Image.open(picPath)
- print im.getbbox()
输出结果图片尺寸:
(0, 0, 600, 715)
- 安装PIL,编译支持jpeg、 png
- PIL装配记录,编译支持jpeg png
- Windows x64下使用PIL并支持JPEG、PNG
- PIL安装详解,jpeg、zip、png 等错误
- mingw1.0下vs2010编译ffmpeg2.3,支持jpeg/png/libx264,mp3/aac/jpeg/ping/x264解码
- Linux下安装配置apache,mysql,php并支持gd,jpeg,png,freetype的方法
- python 安装jpeg支持
- PIL的编译与安装
- php gd 安装支持jpeg
- 让你的PHP同时支持GIF、png、JPEG
- 让你的PHP同时支持GIF、png、JPEG
- PIL support JPEG
- scrapy爬虫之错误 No module named PIL + IOError:decoder jpeg not available +PIL的安装
- Linux 下源代码安装编译 ImageMagick-6.8.4-8 且使其支持 JPEG
- Linux 上安装编译 PIL 1.1.6
- Linux 上安装编译 PIL 1.1.6
- php安装gd(freetype、jpeg、png、zlib)
- Mac OS X下使用Homebrew安装PNG支持——重新编译PHP
- ORA-14400: 插入的分区关键字未映射到任何分区
- 交通灯管制系统
- 开启Win8的Administrator帐户
- javascript 详解2
- 移动互联网应用机会在哪里?
- 安装PIL,编译支持jpeg、 png
- 转载TortoiseSVN的使用详解2(http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html)
- DM8148 开发记录 四 opencv 应用c6accel
- 关于C++中如何判断文件,目录存在的若干方法
- linux守护进程实现
- js实现倒计时
- 12306网站专家:拟采取办法应对抢票软件
- 类.class和类对象.getClass()、Class.forName("类名")的区别
- mongo db 使用方法