码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 基于libjpeg-turbo库的jpeg4py安装与使用记录


    前言

    jpeg4py是Python cffi (C Foreign Function Interface) libjpeg-turbo 绑定和辅助类工具包,是为 libjpeg-turbo 提供线程安全和感知GIL的Python绑定,基于Python 2/3 和 numpy 运行。

    目前只能解码 jpeg 文件,在单线程中比 Image.open().tobytes() 和 scipy.misc.imread() 快约 1.3 倍,在多线程模式下快 9 倍.
    在这里插入图片描述

    本文简要介绍基于libjpeg-turbo库的jpeg4py安装与使用。

    安装

    以Ubuntu为例进行说明:

    root用户安装

    sudo apt-get install libturbojpeg
    pip install jpeg4py
    
    • 1
    • 2

    普通用户安装

    tar -xf libjpeg-turbo-2.1.2.tar.gz
    cd libjpeg-turbo-2.1.2/
    mkdir build
    cd build
    cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/InstallPath/libjpeg-turbo-2.1.2/lib64 ..
    make -j16
    make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    如遇cmake报错如下:

    cmake -G"Unix Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=/InstallPath/libjpeg-turbo-2.1.2/lib64 ..
    Command 'cmake' not found, but can be installed with:
    snap install cmake # version 3.23.3, or
    apt install cmake
    See 'snap info cmake' for additional versions.
    
    • 1
    • 2
    • 3
    • 4
    • 5

    则安装cmake:

    pip install cmake
    
    • 1

    将相关路径添加进环境变量:

    vi ~/.bashrc
    
    在末尾添加:
    # libjpeg-turbo
    export PATH=$PATH:/InstallPath/libjpeg-turbo-2.1.2/lib64/bin/
    # (动态库搜索路径) 程序运行期间查找动态链接库时指定查找共享库的路径
    export LD_LIBRARY_PATH=/InstallPath/libjpeg-turbo-2.1.2/lib64/lib/:$LD_LIBRARY_PATH
    # (静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
    export LIBRARY_PATH=/InstallPath/libjpeg-turbo-2.1.2/lib64/lib/:$LIBRARY_PATH
    # c程序头文件搜索路径
    export C_INCLUDE_PATH=/InstallPath/libjpeg-turbo-2.1.2/lib64/include/:$C_INCLUDE_PATH
    
    source ~/.bashrc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    pip install jpeg4py
    
    • 1

    使用

    Python 3.7.10 | packaged by conda-forge | (default, Feb 19 2021, 16:07:37)
    [GCC 9.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import jpeg4py
    >>> path = 'test.jpg'
    >>> jpeg4py.JPEG(path).decode()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    其他说明

    如果libturbojpeg没有安装成功,则在调用jpeg4py方法时会报错:

    Traceback (most recent call last):
    File "", line 1, in
    File "/data/conda/envs/test/lib/python3.7/site-packages/jpeg4py/_py.py"
    , line 128, in __init__
    super(JPEG, self).__init__(lib_)
    File "/data/conda/envs/test/lib/python3.7/site-packages/jpeg4py/_py.py"
    , line 64, in __init__
    jpeg.initialize()
    File "/data/conda/envs/test/lib/python3.7/site-packages/jpeg4py/_cffi.p
    y", line 212, in initialize
    _initialize(backends)
    File "/data/conda/envs/test/lib/python3.7/site-packages/jpeg4py/_cffi.p
    y", line 193, in _initialize
    raise OSError("Could not load libjpeg-turbo library")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    版权说明

    本文为原创文章,独家发布在blog.csdn.net/TracelessLe。未经个人允许不得转载。如需帮助请email至tracelessle@163.com或扫描个人介绍栏二维码咨询。
    在这里插入图片描述

    参考资料

    [1] ajkxyz/jpeg4py: Python cffi libjpeg-turbo bindings and helper classes
    [2] libjpeg-turbo/libjpeg-turbo: Main libjpeg-turbo repository
    [3] 源码安装libjpeg-turbo1.2.1,无root权限_xiamentingtao的博客-CSDN博客

  • 相关阅读:
    原生M1/M2 Photoshop 2022 for Mac(PS2022)v23.4.2 中英文正式发布详情介绍&安装教程
    数据迁移工具,用这8种就够了!
    宜明昂科在港交所递表:2021年亏损翻倍,过往融资额存在夸大情形
    函数柯里化
    Linux中的crontab 定时任务设置
    最新微服务架构秘籍总结:SpringCloud+SpringCloud Alibaba 全网火爆疯传!
    c++23中的新功能之十九继承的CTAD
    垃圾堆—>初赛错题集(待更)
    Access报表实现小计功能
    用户态切换到内核态的方式
  • 原文地址:https://blog.csdn.net/TracelessLe/article/details/126597802
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号