The goal of this project is to fix problems caused by corrupted JXRs. This was created experimentally after including the JXR plugin in the KImageFormats on oss-fuzz as I was unable to find a maintained JXR library. Although it is a little-known format, it is currently supported by Windows and other Microsoft programs for both reading and writing.
The changes were tested with the T.834 JXR Conformance Suite using KImageFormat's JXR plugin. The test is therefore partial but includes all the most common formats.
- V1.4.1; 2026/06/03
- Fix Use-of-uninitialized-value in
ReadContainer(OSS Fuzz 517870853)
- Fix Use-of-uninitialized-value in
- V1.4.0; 2026/05/29
- Support for memory allocation limit via
PKAlloc_SetLimit/PKAlloc_GetLimitAPI - Added
PKLibJxr_GetVersionAPI to get library version - Unmaintained ASM X86 code moved to
Unmaintainedfolder (it should not be used) - Fix memory leaks (OSS Fuzz 396171604, 511636124)
- Fix crash in
PKImageDecode_Copy_WMP(testcases957297735_f50_tp5-testcard_gray16.jxr) - Fix issues found by github Security and quality
- Support for memory allocation limit via
- V1.3.8; 2026/05/21
- Fix DPI conversion accuracy in BMPs
- Fix compilation error using GCC 15.2
- V1.3.7; 2026/05/13
- Fix Invalid-enum-value in
ParsePFDEntry(OSS Fuzz 511393476)
- Fix Invalid-enum-value in
- V1.3.6; 2026/05/07
- V1.3.5; 2026/04/29
- Changelog updated with list of fixed issues
- Fix some compiler warnings
- V1.3.4; 2026/04/27
- V1.3.3; 2026/04/20
- Fix memory leak when
Captionmetadata is present (OSS Fuzz 396172316)
- Fix memory leak when
- V1.3.2; 2026/04/13
- Fix Abrt in
ImageStrDecTerm(OSS Fuzz 497787225)
- Fix Abrt in
- V1.3.1; 2025/10/23
JPEG XR is a still image format based on technology originally developed by Microsoft under the name HD Photo (formerly Windows Media™ Photo). The JPEG XR format is similar, but not identical, to the HD Photo/Windows Media™ Photo format.
The JPEG XR format replaces the HD Photo/Windows Media™ Photo format in both Windows 8 and the Windows Image Component (WIC). WIC accompanies the Internet Explorer 10 redistributable packages for down-level versions of Windows. Some “Windows Media™ Photo” (WMP) naming conventions are still used internally with this release of the DPK.
JPEG XR files use the .jxr extension. Applications that support the JPEG XR file format should recognize and decode HD Photo/Windows Media™ Photo .hdp/.wdp files, but only offer to create files with the .jxr extension.
The JPEG XR Image Coding Spectification provides a detailed specification of the compression encoder and decoder algorithms plus the detailed structure of the compressed data (elementary) bit stream. This document is designed to be used in conjunction with the included source code. If you find instances where the code differs from the documentation, the code implementation should be used as the reference.
The JPEG XR Image Coding Spectification is an international standard and is available at: http://www.itu.int/rec/T-REC-T.832 while the reference software is available at: http://www.itu.int/rec/T-REC-T.835.
"JPEGXR_DPK_1.0.doc" documents the contents of this porting kit, the usage of the command line file conversion utilities (JXREncApp.exe and JXRDecApp.exe), and technical details of the API's and data structures between these sample command line applications and the core codec.
The code and documentation in this release represent the final design and specification of the 1.0 bit stream, and can be used as the reference for final implementations of encoders and decoders for JPEG XR.
This release of the DPK has received extensive testing of all the various pixel formats, encoder options and modes of operation. We are confident that most errors and other bugs have been resolved. Any code bugs, documentation errors or other discrepancies found in this release candidate should be reported to Microsoft as promptly as possible. These can be submitted to hdview@microsoft.com.
This DPK provides basic support for big endian architectures. We have successfully tested the encoder and decoder using a big endian processor. This support is provided as a starting reference to be adapted to the specific platform and hardware architecture of the target system.
For any and all technical questions or feedback about any part of this Device Porting Kit, including the documentation, please send email to:
We will respond as promptly as possible with answers to your questions.
Additional information, best practices, tools, utilities, sample code, sample image content, links to additional resources and community discussion can currently be found at http://hdview.wordpress.com/.