pylibjpeg-libjpeg 2.4.0


pip install pylibjpeg-libjpeg

  Latest version

Released: Mar 07, 2026

Project Links

Meta
Author: pylibjpeg-libjpeg contributors
Maintainer: scaramallion
Requires Python: >=3.10,<4.0

Classifiers

Development Status
  • 5 - Production/Stable

Intended Audience
  • Developers
  • Healthcare Industry
  • Science/Research

License
  • OSI Approved :: GNU General Public License v3 (GPLv3)
  • Other/Proprietary License

Natural Language
  • English

Operating System
  • MacOS :: MacOS X
  • Microsoft :: Windows
  • POSIX :: Linux

Programming Language
  • C++
  • Python :: 3
  • Python :: 3.10
  • Python :: 3.11
  • Python :: 3.12
  • Python :: 3.13
  • Python :: 3.14

Topic
  • Scientific/Engineering :: Medical Science Apps.
  • Software Development :: Libraries

Build status Test coverage PyPI versions Python versions Code style: black

pylibjpeg-libjpeg

A Python 3.8+ wrapper for Thomas Richter's libjpeg, with a focus on use as a plugin for pylibjpeg.

Linux, MacOS and Windows are all supported.

Installation

Dependencies

NumPy

Installing the current release

pip install pylibjpeg-libjpeg

Installing the development version

Make sure Python and Git are installed. For Windows, you also need to install Microsoft's C++ Build Tools.

git clone --recurse-submodules https://github.com/pydicom/pylibjpeg-libjpeg
python -m pip install pylibjpeg-libjpeg

Supported JPEG Formats

Decoding

ISO/IEC Standard ITU Equivalent JPEG Format
10918 T.81 JPEG
14495 T.87 JPEG-LS
18477 JPEG XT

Encoding

Encoding of JPEG images is not currently supported

Supported Transfer Syntaxes

Decoding

UID Description
1.2.840.10008.1.2.4.50 JPEG Baseline (Process 1)
1.2.840.10008.1.2.4.51 JPEG Extended (Process 2 and 4)
1.2.840.10008.1.2.4.57 JPEG Lossless, Non-Hierarchical (Process 14)
1.2.840.10008.1.2.4.70 JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1])
1.2.840.10008.1.2.4.80 JPEG-LS Lossless
1.2.840.10008.1.2.4.81 JPEG-LS Lossy (Near-Lossless) Image Compression

Usage

With pylibjpeg and pydicom

from pydicom import dcmread
from pydicom.data import get_testdata_file

ds = dcmread(get_testdata_file('JPEG-LL.dcm'))
arr = ds.pixel_array

Standalone JPEG decoding

You can also decode JPEG images to a numpy ndarray:

from libjpeg import decode

with open('filename.jpg', 'rb') as f:
    # Returns a numpy array
    arr = decode(f.read())

# Or simply...
arr = decode('filename.jpg')

Wheel compatibility matrix

Platform CPython 3.10 CPython 3.11 CPython 3.12 CPython 3.13 CPython 3.14
macosx_10_13_x86_64
macosx_10_15_x86_64
macosx_10_9_x86_64
macosx_11_0_arm64
manylinux2014_x86_64
manylinux_2_17_x86_64
manylinux_2_24_aarch64
manylinux_2_28_aarch64
win32
win_amd64

Files in release

pylibjpeg_libjpeg-2.4.0-cp310-cp310-macosx_10_9_x86_64.whl (622.0KiB)
pylibjpeg_libjpeg-2.4.0-cp310-cp310-macosx_11_0_arm64.whl (586.3KiB)
pylibjpeg_libjpeg-2.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.2MiB)
pylibjpeg_libjpeg-2.4.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.1MiB)
pylibjpeg_libjpeg-2.4.0-cp310-cp310-win32.whl (718.1KiB)
pylibjpeg_libjpeg-2.4.0-cp310-cp310-win_amd64.whl (733.4KiB)
pylibjpeg_libjpeg-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl (621.6KiB)
pylibjpeg_libjpeg-2.4.0-cp311-cp311-macosx_11_0_arm64.whl (585.9KiB)
pylibjpeg_libjpeg-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.2MiB)
pylibjpeg_libjpeg-2.4.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.1MiB)
pylibjpeg_libjpeg-2.4.0-cp311-cp311-win32.whl (717.8KiB)
pylibjpeg_libjpeg-2.4.0-cp311-cp311-win_amd64.whl (733.6KiB)
pylibjpeg_libjpeg-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl (624.3KiB)
pylibjpeg_libjpeg-2.4.0-cp312-cp312-macosx_11_0_arm64.whl (586.0KiB)
pylibjpeg_libjpeg-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.3MiB)
pylibjpeg_libjpeg-2.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.1MiB)
pylibjpeg_libjpeg-2.4.0-cp312-cp312-win32.whl (718.0KiB)
pylibjpeg_libjpeg-2.4.0-cp312-cp312-win_amd64.whl (734.0KiB)
pylibjpeg_libjpeg-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl (623.9KiB)
pylibjpeg_libjpeg-2.4.0-cp313-cp313-macosx_11_0_arm64.whl (585.3KiB)
pylibjpeg_libjpeg-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.2MiB)
pylibjpeg_libjpeg-2.4.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.1MiB)
pylibjpeg_libjpeg-2.4.0-cp313-cp313-win32.whl (717.8KiB)
pylibjpeg_libjpeg-2.4.0-cp313-cp313-win_amd64.whl (733.9KiB)
pylibjpeg_libjpeg-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl (624.0KiB)
pylibjpeg_libjpeg-2.4.0-cp314-cp314-macosx_11_0_arm64.whl (585.1KiB)
pylibjpeg_libjpeg-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.2MiB)
pylibjpeg_libjpeg-2.4.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.1MiB)
pylibjpeg_libjpeg-2.4.0-cp314-cp314-win32.whl (719.5KiB)
pylibjpeg_libjpeg-2.4.0-cp314-cp314-win_amd64.whl (733.0KiB)
pylibjpeg_libjpeg-2.4.0.tar.gz (660.7KiB)
Extras: None
Dependencies:
numpy (<3.0,>=2.0)