Skip to main content

A Python wrapper for libjpeg, with a focus on use as a plugin for for pylibjpeg

Project description

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')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylibjpeg_libjpeg-2.1.0.tar.gz (669.3 kB view hashes)

Uploaded Source

Built Distributions

pylibjpeg_libjpeg-2.1.0-cp312-cp312-win_amd64.whl (734.4 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

pylibjpeg_libjpeg-2.1.0-cp312-cp312-win32.whl (727.5 kB view hashes)

Uploaded CPython 3.12 Windows x86

pylibjpeg_libjpeg-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

pylibjpeg_libjpeg-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

pylibjpeg_libjpeg-2.1.0-cp312-cp312-macosx_12_0_x86_64.whl (675.6 kB view hashes)

Uploaded CPython 3.12 macOS 12.0+ x86-64

pylibjpeg_libjpeg-2.1.0-cp312-cp312-macosx_12_0_arm64.whl (629.8 kB view hashes)

Uploaded CPython 3.12 macOS 12.0+ ARM64

pylibjpeg_libjpeg-2.1.0-cp311-cp311-win_amd64.whl (734.4 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

pylibjpeg_libjpeg-2.1.0-cp311-cp311-win32.whl (727.6 kB view hashes)

Uploaded CPython 3.11 Windows x86

pylibjpeg_libjpeg-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

pylibjpeg_libjpeg-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

pylibjpeg_libjpeg-2.1.0-cp311-cp311-macosx_12_0_x86_64.whl (675.7 kB view hashes)

Uploaded CPython 3.11 macOS 12.0+ x86-64

pylibjpeg_libjpeg-2.1.0-cp311-cp311-macosx_12_0_arm64.whl (630.0 kB view hashes)

Uploaded CPython 3.11 macOS 12.0+ ARM64

pylibjpeg_libjpeg-2.1.0-cp310-cp310-win_amd64.whl (734.0 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

pylibjpeg_libjpeg-2.1.0-cp310-cp310-win32.whl (727.7 kB view hashes)

Uploaded CPython 3.10 Windows x86

pylibjpeg_libjpeg-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

pylibjpeg_libjpeg-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

pylibjpeg_libjpeg-2.1.0-cp310-cp310-macosx_12_0_x86_64.whl (675.6 kB view hashes)

Uploaded CPython 3.10 macOS 12.0+ x86-64

pylibjpeg_libjpeg-2.1.0-cp310-cp310-macosx_12_0_arm64.whl (630.0 kB view hashes)

Uploaded CPython 3.10 macOS 12.0+ ARM64

pylibjpeg_libjpeg-2.1.0-cp39-cp39-win_amd64.whl (734.0 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

pylibjpeg_libjpeg-2.1.0-cp39-cp39-win32.whl (727.6 kB view hashes)

Uploaded CPython 3.9 Windows x86

pylibjpeg_libjpeg-2.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

pylibjpeg_libjpeg-2.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

pylibjpeg_libjpeg-2.1.0-cp39-cp39-macosx_12_0_x86_64.whl (675.6 kB view hashes)

Uploaded CPython 3.9 macOS 12.0+ x86-64

pylibjpeg_libjpeg-2.1.0-cp39-cp39-macosx_12_0_arm64.whl (630.0 kB view hashes)

Uploaded CPython 3.9 macOS 12.0+ ARM64

pylibjpeg_libjpeg-2.1.0-cp38-cp38-win_amd64.whl (735.3 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

pylibjpeg_libjpeg-2.1.0-cp38-cp38-win32.whl (728.8 kB view hashes)

Uploaded CPython 3.8 Windows x86

pylibjpeg_libjpeg-2.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.4 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

pylibjpeg_libjpeg-2.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.3 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

pylibjpeg_libjpeg-2.1.0-cp38-cp38-macosx_12_0_x86_64.whl (675.7 kB view hashes)

Uploaded CPython 3.8 macOS 12.0+ x86-64

pylibjpeg_libjpeg-2.1.0-cp38-cp38-macosx_12_0_arm64.whl (630.2 kB view hashes)

Uploaded CPython 3.8 macOS 12.0+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page