Free webp to jpg
JPEG-XR

JPEG XR (HD Photo)

image/vnd.ms-photo Released 2006 · by Microsoft Corporation (later Joint Photographic Experts Group)

The image/vnd.ms-photo MIME type represents the JPEG XR (eXtended Range) format, originally developed and championed by Microsoft under the names Windows Media Photo and HD Photo. Standardized as ISO/IEC 29199-2 in 2009, JPEG XR was engineered as a technologically superior successor to the classic JPEG. It introduced advanced features such as lossless compression, alpha channel transparency, and deep color support (up to 32-bit floating point per channel for High Dynamic Range). Despite its technical merits, it failed to achieve widespread web adoption outside of the Microsoft software ecosystem.

Photography & High Dynamic Range Transparency Progressive ✦ HDR Production Ready

Technical Specifications

MIME Type
image/vnd.ms-photo
Extensions
.jxr.wdp.hdp
Container
TIFF-like Image File Directory (IFD)
Compression
Lossy (Lapped Bi-orthogonal Transform) & Lossless
Algorithms
Lapped Bi-orthogonal Transform (LBT)
Color Depth
8-bit (Grayscale, RGB, CMYK), 16-bit, 32-bit Floating Point (HDR)
Metadata
EXIF XMP ICC
Capabilities
Transparency
Animation
Progressive Loading
Alpha Channel
HDR Support
Official Specification
Aliases: image/jxrimage/x-ms-bmpimage/x-ms-photo

Magic Bytes & HTTP Headers

File Signature (Magic Bytes)
49 49 BC 01
ASCII: II¼\x01
HTTP Headers
Content-Type: image/vnd.ms-photo
Content-Type: image/jxr
HTML Accept Attribute
accept="image/vnd.ms-photo, image/jxr, .jxr, .wdp"

Browser Support Matrix

Browser Status Min Version
Chrome Chrome
Not Supported
Firefox Firefox
Not Supported
Safari Safari
Not Supported
Edge Edge
Not Supported
Internet Explorer Internet Explorer
Supported Legacy

Advantages & Limitations

Advantages
  • Excellent support for 16-bit and 32-bit floating-point HDR images without massive file size bloat
  • Native support for alpha transparency, which standard JPEG fundamentally lacks
  • Computational complexity for decoding/encoding is relatively low, making it hardware-friendly
Limitations
  • Suffered a complete failure of adoption in the web browser market outside of Microsoft's ecosystem
  • Fully superseded by modern, open formats like WebP, AVIF, and JPEG XL which offer better compression and universal browser support
  • Multiple file extensions (.wdp, .hdp, .jxr) and MIME types cause confusion and parsing fragmentation

Developer Code Snippets

import magic
# Libmagic will reliably detect the '49 49 BC 01' header and identify it as JPEG XR
print(magic.from_file('photo.jxr', mime=True)) # Outputs 'image/vnd.ms-photo' or 'image/jxr'
const FileType = require('file-type');
const type = await FileType.fromFile('photo.wdp');
console.log(type.mime); // Will typically resolve to 'image/jxr' or 'image/vnd.ms-photo'
import (
    "bytes"
    "net/http"
)
// http.DetectContentType misses JPEG XR. Use a custom prefix check:
// isJXR := bytes.HasPrefix(buf, []byte{0x49, 0x49, 0xBC, 0x01})
$mime = mime_content_type('photo.jxr');
echo $mime; // Standard setups will often output 'image/vnd.ms-photo'

File Detection Steps

How to programmatically detect a image/vnd.ms-photo file by reading its raw bytes:

  1. 1 Check the first 4 bytes for the JPEG XR magic number: 49 49 BC 01.
  2. 2 The format heavily borrows from the TIFF specification. The first two bytes (49 49 or 'II') indicate Intel little-endian byte ordering, while the next two bytes (BC 01) explicitly identify it as a JPEG XR/HD Photo file rather than a standard TIFF (which would use 2A 00).

Software Support

W
Windows Photo Viewer
A
Adobe Photoshop
ImageMagick ImageMagick
X
XnView

Conversion Tools

Share & Embed

Markdown Badge
JPEG-XR Format Badge
[![JPEG-XR Format](https://freewebptojpg.com/mime/image/jpeg-xr/badge.svg)](https://freewebptojpg.com/mime/image/jpeg-xr)
Interactive iframe Widget
<iframe src="https://freewebptojpg.com/mime/image/jpeg-xr/embed" width="100%" height="280" style="border:1px solid #cbd5e1;border-radius:8px;" title="JPEG-XR Specs"></iframe>

JSON API

All data on this page is available as a free, open JSON API. Use it in your project, documentation, or tooling.

GET https://freewebptojpg.com/mime/image/jpeg-xr.json Open JSON
Free to use
No auth required
CORS enabled
Use from any domain
Cached 24h
Cache-Control headers set

Frequently Asked Questions

What is the difference between JPEG XR, HD Photo, and WDP?

They are functionally the exact same format. Microsoft initially introduced it as Windows Media Photo (.wdp), then rebranded it as HD Photo (.hdp), and finally submitted it for international standardization where it was ratified as JPEG XR (.jxr). The image/vnd.ms-photo MIME type covers all of them.

Is JPEG XR better than standard JPEG?

Technically, yes. JPEG XR supports lossless compression, alpha transparency, and much higher bit-depths (including 32-bit floating point for HDR images), all while offering better compression ratios than a standard JPEG. However, because it lacked support in Chrome, Firefox, and Safari, it was completely superseded by modern formats like WebP and AVIF on the web.

Can I use image/vnd.ms-photo on a modern website?

No. The only browsers that natively supported JPEG XR were Internet Explorer 9+ and the legacy version of Microsoft Edge. Chromium-based Edge, Chrome, Safari, and Firefox never implemented it. You should use WebP or AVIF for modern web delivery.

Related Formats

Share this format