{"id":"image-vnd-ms-photo","mimeType":"image/vnd.ms-photo","name":"JPEG XR (HD Photo)","shortName":"JPEG-XR","category":"Photography \u0026 High Dynamic Range","extensions":[".jxr",".wdp",".hdp"],"description":"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.","seo":{"title":"image/vnd.ms-photo MIME Type | Developer Reference for JPEG XR","description":"Complete reference for the image/vnd.ms-photo MIME type: JPEG XR, HD Photo, WDP file extensions, HDR support, and legacy Microsoft browser compatibility.","faqs":[{"question":"What is the difference between JPEG XR, HD Photo, and WDP?","answer":"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."},{"question":"Is JPEG XR better than standard JPEG?","answer":"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."},{"question":"Can I use image/vnd.ms-photo on a modern website?","answer":"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."}]},"index":{"compression":["Lossy (Lapped Bi-orthogonal Transform)","Lossless"],"browserSupport":{"score":1,"label":"None (Legacy IE/Edge Only)"},"commonUses":["Legacy Windows Desktop Backgrounds","XPS (XML Paper Specification) Documents","Early High Dynamic Range (HDR) Photography","DirectX Textures"]},"technical":{"magicBytes":{"hex":"49 49 BC 01","ascii":"II¼\\x01"},"container":"TIFF-like Image File Directory (IFD)","compressionAlgorithm":["Lapped Bi-orthogonal Transform (LBT)"],"colorDepth":["8-bit (Grayscale, RGB, CMYK)","16-bit","32-bit Floating Point (HDR)"],"transparency":true,"animation":false,"metadata":{"exif":true,"xmp":true,"iccProfile":true},"alphaChannel":true,"progressiveLoading":true,"hdrSupport":true},"history":{"developer":"Microsoft Corporation (later Joint Photographic Experts Group)","released":"2006","specification":"ISO/IEC 29199-2 / ITU-T T.832"},"browserSupport":{"chrome":false,"chromeVersion":"None","firefox":false,"firefoxVersion":"None","safari":false,"safariVersion":"None","edge":false,"edgeVersion":"Legacy Only (Pre-Chromium)","internetExplorer":true},"softwareSupport":[{"name":"Windows Photo Viewer","logo":""},{"name":"Adobe Photoshop","logo":""},{"name":"ImageMagick","logo":"image-magic.webp"},{"name":"XnView","logo":""}],"conversion":{"convertTo":["jpeg","png","webp","avif","exr"],"convertFrom":["jpeg","tiff","png","exr"]},"developer":{"httpHeaders":[{"header":"Content-Type","value":"image/vnd.ms-photo"},{"header":"Content-Type","value":"image/jxr"}],"htmlAccept":"image/vnd.ms-photo, image/jxr, .jxr, .wdp","fileDetection":["Check the first 4 bytes for the JPEG XR magic number: 49 49 BC 01.","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)."]},"prosCons":{"pros":["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"],"cons":["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"]},"specifications":{"url":"https://www.iso.org/standard/52213.html","rfc":"","mimeAliases":["image/jxr","image/x-ms-bmp","image/x-ms-photo"]},"developerSnippets":{"python":"import magic\n# Libmagic will reliably detect the '49 49 BC 01' header and identify it as JPEG XR\nprint(magic.from_file('photo.jxr', mime=True)) # Outputs 'image/vnd.ms-photo' or 'image/jxr'","nodejs":"const FileType = require('file-type');\nconst type = await FileType.fromFile('photo.wdp');\nconsole.log(type.mime); // Will typically resolve to 'image/jxr' or 'image/vnd.ms-photo'","go":"import (\n    \"bytes\"\n    \"net/http\"\n)\n// http.DetectContentType misses JPEG XR. Use a custom prefix check:\n// isJXR := bytes.HasPrefix(buf, []byte{0x49, 0x49, 0xBC, 0x01})","php":"$mime = mime_content_type('photo.jxr');\necho $mime; // Standard setups will often output 'image/vnd.ms-photo'"},"relatedFormats":["jpeg","tiff","webp","exr"]}
