安装 jpegtran-cffi 使用 from jpegtran import JPEGImage

时间:2022-01-10 22:40:36

Requirements

  • CPython >=2.6 or >=3.3 or PyPy
  • cffi >= 1.0
  • libturbojpeg with headers

Install

1. pip3 install cffi

2. Ubuntu 安装libjpeg-turbo库

概述:简单说一下libjpeg-turbo和libjpeg的区别,这是在*上看的。libjpeg-turbo是libjpeg的一个复刻,它采用单指令流多数据流(SIMD)指令来加速JPEG编码和解码基础效率。许多项目现在使用libjpeg-turbo而不是libjpeg。我也是看了这个,又看到很多人推荐libjpeg-turbo,所以自己也就装了一个。那么现在就看看如何安装吧。

  • github下载libjpeg-turbo源码。
git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git
  • 安装编译依赖包。
sudo apt-get install nasm
  • 编译安装。

在源码中,BUILDING.md文件中,有详细告诉我们如何编译。截图如下: 
安装 jpegtran-cffi 使用 from jpegtran import JPEGImage

第一步,移动到源文件目录,并执行autoreconf -fiv 命令。

cd libjpeg-turbo
autoreconf -fiv

第二步,运行configure脚本并加上配置参数。我们就直接在源目录执行,不用创建build目录了。 
不过在运行之前,我们查看一下/usr/local/lib下有没有libjpeg.so*文件,有的话我们执行操作,删除这些文件。

sudo rm -rf /usr/local/lib/libjpeg.so*

否则,直接执行此步即可。

./configure --prefix=/usr/local  --mandir=/usr/local/share/man --with-jpeg8 --disable-static --docdir=/usr/local/share/doc/libjpeg-turbo-1.5.2

解释一下各项参数简单意思。 
–prefix=/usr/local 指定库安装路径 
–mandir=/usr/local/share/man 指定man文件(相关命令参考信息)安装路径 
–with-jpeg8 这个开关启用与libjpeg 版本8的兼容性,即可使用libjpeg8的API. 
–disable-static 阻止安装静态版本的库 
–docdir=/usr/local/share/doc/libjpeg-turbo-1.5.2 指定文档安装路径

第三步,编译及安装。

make
sudo make install

第四步,小测试。 
在源码目录执行make test命令。

make test

输出结果很长,我就只把最后结果贴下了。 
安装 jpegtran-cffi 使用 from jpegtran import JPEGImage

最后就是安装jpegtran-cffi

pip3 install jpegtran-cffi

  

安装 jpegtran-cffi 使用 from jpegtran import JPEGImage的更多相关文章

  1. python已安装好第三方库,pycharm import时仍标红的解决办法

    pip install pymysql之后导入import pymysql时候标红 发现 pymysql下方还是标红,不能正常导入 可以试用一下以下的办法 解决办法: 首先打开 Settings找到P ...

  2. Ubuntu16.04 anaconda3 opencv已经安装,但是无法import的问题

    解决anaconda中已经安装了opencv3,但无法import的问题 你可能遇见的问题: ImportError: No module named cv2 ImportError: libz-a1 ...

  3. [Python]安装完pip、pygame后,仍然import pygame报错

    按照<python编程从入门到实践>上的教程下载了pygame的whl文件进行安装, 在cmd窗口里import pygame提示无错误,在IDEL里程序也能正常运行, 但是pycharm ...

  4. 关于python pip安装第三方库 jieba 中文分词工具后提示&quot&semi;ImportError&colon; cannot import name &&num;39&semi;Random&&num;39&semi;&quot&semi;报错问题

    具体错误提示如下: >>> import jieba Traceback (most recent call last): File "<stdin>&quot ...

  5. Linux安装pytorch的具体过程以及其中出现问题的解决办法

    1.安装Anaconda 安装步骤参考了官网的说明:https://docs.anaconda.com/anaconda/install/linux.html 具体步骤如下: 首先,在官网下载地址 h ...

  6. 一般源码安装添加的GD库 是不支持 jpeg 格式的图片的

    一般源码安装添加的GD库 是不支持 jpeg 格式的图片的,只支持如下格式 GD Support enabled GD Version bundled (2.0.34 compatible) GIF ...

  7. RabbitMQ的安装过程

    原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com 网上一些安装教程都较为繁琐,实际上只需要两个RPM包,几分钟即可完成一台实例部署. 准备下载Erlang包: ht ...

  8. Python JPype 在 Win7 下安装与使用

    JPype 是 Python调用 Java 代码的模块,需要Java SE Runtime Environment (JRE)的支持. 个人安装环境: Windows 7 64bit + Python ...

  9. sublime text3 常用插件安装

    1.Package Control 按Ctrl+~调出console(或者view>show console) 粘贴以下代码到底部命令行并回车: import urllib.request,os ...

随机推荐

  1. ViewPager&plus;Fragment实现页面的切换

    新知识,新摘要: 效果图:framgent导入包都是v4包下,谨慎导入错误! 首先设置viewPager布局: <?xml version="1.0" encoding=&q ...

  2. linux初体验

    linux系统和window一样,也是一套独立的操作系统,它只是没有图形化界面而已

  3. mock server相关解决方案

    前后端分离之后 前后端分离后, 大家从此进入了所谓的并行开发时代. 一旦完成前后端的(边界)分工, 大家就可以各司其职了. 前端在与后端交互时, 要想有效地提高工作效率, 后端的接口文档就是重中之重了 ...

  4. directive&lpar;指令里的&rpar;的compile&comma;pre-link&comma;post-link&comma;link&comma;transclude

    The nitty-gritty of compile and link functions inside AngularJS directives  The nitty-gritty of comp ...

  5. jQuery&colon;多个AJAX&sol;JSON请求对应单个回调

    原文链接:jQuery: Multiple AJAX and JSON Requests, One Callback 原文日期: 2014年4月15日 翻译日期: 2014年4月22日 翻译人员: 铁 ...

  6. java&lpar;7&rpar;数组

    一.什么是数组及其作用? 定义:具有相同数据类型的一个集合 作用:存储连续的具有相同类型的数据 二.java中如何声明和定义数组 2.1 声明和定义的语法: 数据类型[ ] 数组名:( int[ ] ...

  7. python自动化开发-&lbrack;第二天&rsqb;-基础数据类型与编码&lpar;续&rpar;

    今日简介: - 编码 - 进制转换 - 初识对象 - 基本的数据类型 - 整数 - 布尔值 - 字符串 - 列表 - 元祖 - 字典 - 集合 - range/enumcate 一.编码 encode ...

  8. &lbrack;NOIP提高组2018day2t1&rsqb;旅行

    题目描述 给定n个城市,m条双向道路的图, 不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路.并且, 从任意一个城市出发,通过这些道路都可以到达任意一个其他城市.小 Y 只能通过 ...

  9. DirectUI消息循环的简单封装

      一.真窗体和假窗体 首先在DirectWindow内部创建一个真窗体(基于WTL),可以接收消息 class CMessageWindow : public CWindowImpl< CMe ...

  10. Mysql学习---面试基础知识点总结

    drop.truncate. delete区别 TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 ...