pylibjpeg-libjpeg
A Python wrapper for libjpeg, with a focus on use as a plugin for for pylibjpeg
Decision gist · record as of 2026-08-14
Yes, if you need JPEG or JPEG-LS decoding in a DICOM or scientific imaging context. The package is actively maintained, has no known vulnerabilities, and offers broad platform support. The GPL v3.0 copyleft license is a hard blocker for closed-source projects; open-source and research users should install without hesitation. Encoding is not supported, so it is not suitable for JPEG generation workflows.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; NumPy must be installed.
- On Windows, development builds require Microsoft C++ Build Tools.
- Pre-built wheels available for Python 3.10–3.13 on Linux, macOS, and Windows reduce install friction.
License · maintenance · safety
GPL V3.0 (copyleft) — Licensed under GPL v3.0 (copyleft). Any derivative work or distribution must comply with copyleft obligations; proprietary or closed-source projects should review compatibility before use.
last release 2026-03-07 (160 days) · last repo commit 2026-04-01 · 17 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 251,404 downloads/mo, #8,584 on PyPI
Alternatives
Verify before relying
from libjpeg import decode
import numpy as np
# Decode JPEG file to NumPy array
arr = decode('filename.jpg')
# Or with file object
with open('filename.jpg', 'rb') as f:
arr = decode(f.read())- Performance characteristics (decode speed, memory usage) relative to other JPEG decoders
- Completeness of JPEG-LS support and any known limitations
- Stability and bug-fix frequency beyond the stated active maintenance status
What it is and what it does
pylibjpeg-libjpeg is a Python wrapper around Thomas Richter's libjpeg library, designed primarily as a plugin for the pylibjpeg ecosystem and pydicom. It decodes JPEG and JPEG-LS images into NumPy arrays, supporting both standalone use and integration with DICOM workflows. The package handles multiple DICOM transfer syntaxes including JPEG Baseline, JPEG Extended, JPEG Lossless, and JPEG-LS variants.
The package is built on compiled C++ bindings and ships with pre-built wheels for modern Python versions (3.10–3.13) across Linux, macOS, and Windows, reducing installation complexity for most users. It depends only on NumPy and is maintained as part of the pydicom project. Encoding is not currently supported; the focus is on decoding medical and standard JPEG formats.
Use it for
- Decompress JPEG-encoded DICOM medical images within a pydicom workflow
- Decode JPEG-LS lossless images for archival or diagnostic imaging applications
- Standalone conversion of JPEG files to NumPy arrays for scientific image processing
- Plugin integration with pylibjpeg to support multiple JPEG codecs in a single application
- Batch processing of DICOM datasets with JPEG-compressed pixel data
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need JPEG or JPEG-LS decoding in a DICOM or scientific imaging context.
The package is actively maintained, has no known vulnerabilities, and offers broad platform support. The GPL v3.0 copyleft license is a hard blocker for closed-source projects; open-source and research users should install without hesitation. Encoding is not supported, so it is not suitable for JPEG generation workflows.
Install
pylibjpeg-libjpeg on PyPI
Before you install
Pre-built wheels available for Python 3.10–3.13 on Linux, macOS, and Windows reduce install friction. Repository is active with recent commits. Medium install friction reflects compiled C++ bindings; development builds require Microsoft C++ Build Tools on Windows.
Requires Python 3.10 or later; NumPy must be installed. On Windows, development builds require Microsoft C++ Build Tools.
License in practice
Licensed under GPL v3.0 (copyleft). Any derivative work or distribution must comply with copyleft obligations; proprietary or closed-source projects should review compatibility before use.
Quickstart
from libjpeg import decode
import numpy as np
# Decode JPEG file to NumPy array
arr = decode('filename.jpg')
# Or with file object
with open('filename.jpg', 'rb') as f:
arr = decode(f.read())
Verify before relying
- Performance characteristics (decode speed, memory usage) relative to other JPEG decoders
- Completeness of JPEG-LS support and any known limitations
- Stability and bug-fix frequency beyond the stated active maintenance status
Package facts
| License | GPL V3.0 copyleft |
| Python support | Supports the current Python release <4.0,>=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagenumpy |
| Maintenance | Actively maintained 160 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 251,404 / month, #8,584 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Healthcare IndustryIntended Audience :: Science/ResearchLicense :: OSI Approved :: GNU General Public License v3 (GPLv3)License :: Other/Proprietary LicenseNatural Language :: EnglishOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: C++Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/Engineering :: Medical Science Apps.Topic :: Software Development :: Libraries |
Evidence: pylibjpeg_libjpeg-2.4.0-cp310-cp310-macosx_10_9_x86_64.whl; pylibjpeg_libjpeg-2.4.0-cp310-cp310-macosx_11_0_arm64.whl; pylibjpeg_libjpeg-2.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; pylibjpeg_libjpeg-2.4.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; pylibjpeg_libjpeg-2.4.0-cp310-cp310-win32.whl; pylibjpeg_libjpeg-2.4.0-cp310-cp310-win_amd64.whl; pylibjpeg_libjpeg-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl; pylibjpeg_libjpeg-2.4.0-cp311-cp311-macosx_11_0_arm64.whl; pylibjpeg_libjpeg-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; pylibjpeg_libjpeg-2.4.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; pylibjpeg_libjpeg-2.4.0-cp311-cp311-win32.whl; pylibjpeg_libjpeg-2.4.0-cp311-cp311-win_amd64.whl; pylibjpeg_libjpeg-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl; pylibjpeg_libjpeg-2.4.0-cp312-cp312-macosx_11_0_arm64.whl; pylibjpeg_libjpeg-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; pylibjpeg_libjpeg-2.4.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; pylibjpeg_libjpeg-2.4.0-cp312-cp312-win32.whl; pylibjpeg_libjpeg-2.4.0-cp312-cp312-win_amd64.whl; pylibjpeg_libjpeg-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl; pylibjpeg_libjpeg-2.4.0-cp313-cp313-macosx_11_0_arm64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “jpeg decoding python”
- pylibjpeg-libjpegDecodes JPEG and JPEG-LS images to NumPy arrays, with support for…
- pylibjpegDecodes and encodes JPEG, JPEG-LS, JPEG 2000, and RLE image formats,…
- simplejpegEncodes and decodes JPEG images directly to and from memory using…
Give your agent the search over MCP, or paste the wish link into any chat.
More Libraries packages
urllib3 is an HTTP client library that provides thread-safe connection pooling, SSL/TLS verification, multipart file uploads, request retries, compression support, and proxy handling for Python applications.
Requests is a Python HTTP library that simplifies sending HTTP/1.1 requests with automatic handling of headers, authentication, cookies, and response parsing.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Provides parsing, arithmetic, and recurrence rule computation for dates and times, with timezone support and iCalendar RFC compliance.
Install it if you need to parse flexible date strings, compute relative dates, handle timezones, or work with recurrence rules—it's the de facto choice for these tasks.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
See also pylibjpeg · pylibjpeg-openjpeg · pyjpegls · PyTurboJPEG · simplejpeg · turbojpeg · python-gdcm · pydicom · lilcom · qoi