• 【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文档

  • 相关阅读:
    实例 find
    实例 历史命令查找
    Crontab
    find命令
    实例 tar备份以日期命名
    断开网络驱动器后图标不消失
    Windows7系统下优化固态硬盘
    目标进程已退出,但未引发 CoreCLR 启动事件
    md5 helper
    List<T> or IList<T>
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5371645.html
Copyright © 2020-2023  润新知