【Python笔记】图片处理库PIL的源代码安装步骤
前段时间项目须要对某些图片打水印,用到Python的PIL库,本文以Imaging-1.1.7为例,记录PIL库的源代码编译/安装步骤。
PIL全称Python Image Library。它支持多种图片格式的处理,能为我们的应用程序代理强大的图像处理能力,如裁剪、旋转、打水印等。
从官网下载v1.1.7版本号源代码并解压后,cd至解压文件夹,读README可知。若想在应用中处理jpeg图片。须要预先安装jpeg库。否则使用时会报错。
1. 编译安装jpeg库
1.1 编译源代码
从jpeg库官网下载stable版本号的jpeg源代码(最新稳定版为v9a),解压源代码的gz包。cd至解压文件夹,vi打开Makefile文件。改动2处:
1) 将prefix变量设置为jpeg库的安装目标路径
2) 在CFLAGS设置中追加-fPIC參数(关于PIC的作用,可通过man gcc了解或參见这里)
注意:因为后面安装Imaging时,须要编译出一个_Imaging.so库文件,故这里必须设置-fPIC參数,否则Imaging编译时会报例如以下错误(想验证的话,能够试一试 -_-):
/usr/bin/ld: /home/slvher/python-2.7.5/3rd-lib-src/jpeg-6b/lib/libjpeg.a(jcparam.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/home/slvher/python-2.7.5/3rd-lib-src/jpeg-6b/lib/libjpeg.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
error: command 'gcc' failed with exit status 1
1.2 install-lib
以-fPIC參数编译完jpeg源代码后。运行例如以下命令:
make install
make install-lib
以上命令将编译好的jpeg库"安装"至由prefix指定的路径下(事实上就是从源代码文件夹cp文件至prefix文件夹)
2. 安装Imaging库
cd至Imaging-1.1.7,vi打开setup.py。改动文件:
1) 凝视掉JPEG_ROOT = None
2) 添加JPEG_ROOT = libinclude("/home/slvher/python-2.7.5/3rd-lib-src/jpeg-6b"),保存退出并运行例如以下命令:
python setup.py build_ext -i
正常情况下,Imaging库编译会成功
然后运行例如以下命令就可以将PIL库安装到python的site-packages文件夹下:
python setup.py install
此后,应用程序就能够正常使用GIL库了
【參考资料】
1. PIL官网
2. PIL源代码README文档
【Python笔记】图片处理库PIL的源代码安装步骤的更多相关文章
- Mac os 下 python爬虫相关的库和软件的安装
由于最近正在放暑假,所以就自己开始学习python中有关爬虫的技术,因为发现其中需要安装许多库与软件所以就在这里记录一下以避免大家在安装时遇到一些不必要的坑. 一. 相关软件的安装: 1. h ...
- python——模块、标准库、第三方模块安装
模块(module)简介 模块化--指将一个完整的程序分解为一个一个小的模块,通过将模块组合,来搭建出一个完整的程序. 模块化的特点: ① 方便开发 ② 方便维护 ③ 模块可以复用! 在Python中 ...
- python 笔记1:官网下载及安装python;eclipse中安装配置pydev
1 下载安装python. 官网:https://www.python.org/downloads/ 根据自己的操作系统选择需要的版本下载并安装. 我的电脑操作系统windows xp的,只 ...
- Python图像处理库PIL中图像格式转换
o 在数字图像处理中,针对不同的图像格式有其特定的处理算法.所以,在做图像处理之前,我们需要考虑清楚自己要基于哪种格式的图像进行算法设计及其实现.本文基于这个需求,使用python中的图像处理库PIL ...
- python爬虫基础15-python图像处理,PIL库
Python图像处理-Pillow 简介 Python传统的图像处理库PIL(Python Imaging Library ),可以说基本上是Python处理图像的标准库,功能强大,使用简单. 但是由 ...
- Python图像处理库PIL中图像格式转换(一)
在数字图像处理中,针对不同的图像格式有其特定的处理算法. 所以,在做图像处理之前,我们须要考虑清楚自己要基于哪种格式的图像进行算法设计及事实上现.本文基于这个需求.使用python中的图像处理库PIL ...
- media静态文件统一管理 操作内存的流 - StringIO | BytesIO PIL:python图片操作库 前端解析二进制流图片(了解) Admin自动化数据管理界面
一.media ''' 1. 将用户上传的所有静态文件统一管理 -- settings.py -- MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2. 服务 ...
- Python 细聊可以媲美 PS 的 PIL 图片处理库
1 . 前言 PIL 是 Python Image Library 的简称. PIL 库中提供了诸多用来处理图片的模块,可以对图片做类似于 PS(Photoshop) 的编辑.比如:改变图像大小.旋转 ...
- Python机器学习笔记:sklearn库的学习
网上有很多关于sklearn的学习教程,大部分都是简单的讲清楚某一方面,其实最好的教程就是官方文档. 官方文档地址:https://scikit-learn.org/stable/ (可是官方文档非常 ...
随机推荐
- <转>安卓软件测试的几个要点
1.界面 ① 文字错误.图片不显示或显示不正确.缺少输入项.按钮的大小和点击效果 ② 布局.图片和配色设计问题,测试人员很难进入 ③ 提示信息,提示信息语言准确简洁,有指导性.在应该提示的位置放入提示 ...
- 无聊之作,RPGdemo制作(一)角色state模式
今天周末,在家无事可做,不知道为什么,突发奇想,想写一个RPG游戏的demo玩玩.所以就记录一下. 第一步要做的是,为以后的角色类写一个state模式的类,考虑到可能以后会用到,所以用模版来实现, / ...
- python中pip的安装
1.下载路径如下 https://pypi.python.org/simple/ 在其中查找到pip的安装包:然后找到路径 https://pypi.python.org/simple/pip/ 2. ...
- md5加密算法c语言版
from: http://blog.sina.com.cn/s/blog_693de6100101kcu6.html 注:以下是md5加密算法c语言版(16/32位) ---------------- ...
- C++11 现代C++风格的新元素--简介
C++11标准推出了很多有用的新特性,本文特别关注那些相比C++98更像是一门新语言的特性,理由是: 这些特性改变了编写C++程序使用的代码风格和习语[译注 1],通常也包括你设计C++函数库的方式. ...
- win7 下启动mysql
1.下载mysql最新版,解压,不用安装. 2.启动服务: 进入bin文件夹下,使用管理员权限运行 mysqld.exe. 3.测试是否启动了服务. 4.登录mysql.初次安装的,没有设置密码,直接 ...
- Bluebird-Collections
Promise实例方法和Promise类核心静态方法用于处理promise或者混合型(mixed)promise和值的集合. 所有的集合实例方法都等效于Promise对象中的静态方法,例如:someP ...
- [LeetCode] #167# Two Sum II : 数组/二分查找/双指针
一. 题目 1. Two Sum II Given an array of integers that is already sorted in ascending order, find two n ...
- Home-brew 安装&卸载 Git
安装 brew install git 卸载git: rm -rf /usr/local/git rm /etc/paths.d/git rm /etc/manpaths.d/git sudo rm ...
- Hadoop概念学习系列之常见的分布式文件系统(二十六)
常见的分布式文件系统有,GFS.HDFS.Lustre .Ceph .GridFS .mogileFS.TFS.FastDFS等.各自适用于不同的领域.它们都不是系统级的分布式文件系统,而是应用级的分 ...