Convert DDS to JXL

Drag and drop files here or click to select.
Max file size 100mb.
Uploading progress:

DDS vs JXL Format Comparison

Aspect DDS (Source Format) JXL (Target Format)
Format Overview
DDS
DirectDraw Surface

DDS (DirectDraw Surface) is Microsoft's texture storage format designed for real-time GPU rendering in DirectX applications. Introduced with DirectX 7, DDS stores textures in GPU-native compressed formats (DXT/BC) that can be loaded directly into video memory without decompression, enabling fast rendering in games and 3D applications. DDS supports mipmaps, cube maps, volume textures, and various block compression formats optimized for GPU hardware.

Lossless Standard
JXL
JPEG XL

JPEG XL is the next-generation image codec (ISO/IEC 18181, 2022) designed to replace JPEG, PNG, and GIF. It delivers exceptional compression efficiency with both lossy and lossless modes, progressive decoding, HDR support, wide color gamuts, and animation capabilities. JXL achieves 20-60% better lossless compression than PNG and 60% better lossy compression than JPEG, making it the most versatile modern image format available.

Lossless Modern
Technical Specifications
Color Depth: 4-bit (DXT1) to 128-bit (RGBA float)
Compression: DXT1-5/BC1-7 (GPU block compression)
Transparency: DXT3/DXT5 alpha, BC7 full alpha
Animation: Not supported
Extensions: .dds
Color Depth: Up to 32-bit float per channel, HDR
Compression: Lossless (Brotli-based) or Lossy (VarDCT)
Transparency: Full alpha channel with arbitrary precision
Animation: Native animation support
Extensions: .jxl
Image Features
  • Mipmaps: Pre-generated LOD chains for distance rendering
  • Cube Maps: 6-face environment maps for reflections
  • Volume Textures: 3D texture data for volumetric effects
  • Block Compression: BC1-BC7 GPU-native formats
  • HDR Textures: BC6H for HDR environment lighting
  • Normal Maps: BC5 optimized for tangent-space normals
  • Progressive Decode: Image sharpens during loading
  • HDR Support: PQ and HLG transfer functions
  • JPEG Transcoding: Lossless JPEG recompression
  • Layers: Multi-layer composition support
  • Metadata: Full EXIF, XMP, JUMBF support
  • Color Management: ICC profiles, wide gamut
Processing & Tools

DDS textures are created with GPU texture tools:

# Convert with NVIDIA Texture Tools
nvcompress -bc1 input.png output.dds

# Read DDS with Pillow (Python)
from PIL import Image
img = Image.open('texture.dds')

# Convert with ImageMagick
magick input.dds output.png

JXL encoding with reference implementation:

# Encode to JXL lossless
cjxl input.png output.jxl -q 100

# Encode lossy at high quality
cjxl input.png output.jxl -q 95

# Decode JXL back to PNG
djxl input.jxl output.png
Advantages
  • GPU-native compression — no decompression needed for rendering
  • Mipmap chains for efficient level-of-detail rendering
  • Cube maps and volume textures for 3D applications
  • Fixed-ratio compression (predictable VRAM usage)
  • Industry standard for DirectX game development
  • BC7 provides high-quality compression with alpha
  • 20-60% better lossless compression than PNG
  • Both lossy and lossless in a single codec
  • Progressive decoding for web delivery
  • HDR and wide color gamut support
  • Lossless JPEG transcoding capability
  • ISO-standardized open format
  • Native animation support
Disadvantages
  • Lossy block compression (DXT/BC) degrades image quality
  • Not viewable in web browsers
  • Complex format with many sub-formats and flags
  • Not suitable for general image storage or sharing
  • File sizes larger than PNG/JPEG for same visual quality
  • Browser support still growing
  • Cannot be loaded directly by GPU (not a texture format)
  • Encoding slower than DDS block compression
  • Not suitable for real-time game rendering
  • Tooling ecosystem still maturing
Common Uses
  • Game textures (diffuse, normal, specular maps)
  • 3D application environment and skybox maps
  • DirectX real-time rendering pipelines
  • GPU-accelerated image processing
  • Virtual reality environment textures
  • Next-generation web image delivery
  • Photographic archival and distribution
  • HDR content storage
  • Replacing PNG for lossless graphics
  • Professional photography workflows
  • Digital asset management
Best For
  • Real-time GPU rendering in games and 3D apps
  • Texture assets requiring mipmap LOD chains
  • DirectX pipeline texture storage
  • Environment maps and cube maps
  • Archiving extracted game textures for reference
  • Sharing texture artwork outside game engines
  • Web portfolios showcasing texture art
  • Cross-platform texture preview and distribution
  • Long-term storage of texture source files
Version History
Introduced: 1999 (DirectX 7)
Current Version: DDS DX10 extended header
Status: Active, standard game texture format
Evolution: DXT1-5 (DX7) → BC1-5 (DX10) → BC6H/BC7 (DX11)
Introduced: 2022 (ISO/IEC 18181)
Current Version: JPEG XL 0.10+ (libjxl reference)
Status: Standardized, growing adoption
Evolution: PIK + FUIF (2018) → JPEG XL standard (2022)
Software Support
Image Editors: Photoshop (NVIDIA plugin), GIMP, Paint.NET
Web Browsers: Not supported
OS Preview: Windows (with codec), limited on macOS/Linux
Mobile: Not supported for viewing
CLI Tools: NVIDIA Texture Tools, texconv, Pillow, ImageMagick
Image Editors: GIMP 2.99+, Krita, darktable
Web Browsers: Safari 17+, Chrome/Firefox (experimental)
OS Preview: macOS 14+, Linux native, Windows (extensions)
Mobile: iOS 17+, Android 14+
CLI Tools: libjxl (cjxl/djxl), ImageMagick 7.1+, Pillow 10+

Why Convert DDS to JXL?

Converting DDS textures to JXL is valuable when you need to share, archive, or display game textures outside of their rendering pipeline. DDS is designed for GPU consumption — its block compression formats (BC1-BC7) are optimized for real-time decompression on graphics hardware, not for human viewing or web display. JXL provides dramatically better visual quality at similar or smaller file sizes, making it ideal for texture portfolios, documentation, and archival.

The compression difference is striking: DDS block compression (e.g., BC1/DXT1) achieves a fixed 6:1 ratio but introduces visible block artifacts, especially around gradients and fine details. JXL lossless compression preserves every pixel exactly while typically producing smaller files than the GPU-compressed DDS original. For texture artists who want to showcase their work with maximum fidelity, JXL eliminates the compression artifacts inherent in DDS block formats.

For game modding communities and asset documentation, DDS files are inaccessible without specialized tools — no web browser or standard image viewer can display them. Converting to JXL makes textures immediately viewable on any platform. Modding wikis, asset libraries, and texture reference databases benefit enormously from having textures in a web-compatible format that viewers can browse without downloading DDS plugins.

Note that JXL is not a replacement for DDS in rendering pipelines — game engines need GPU-native block compression for real-time performance. The conversion is for viewing, sharing, and archival purposes. Keep DDS files for your game engine pipeline and use JXL for everything else: portfolios, documentation, web galleries, and long-term archival of texture source art.

Key Benefits of Converting DDS to JXL:

  • Visual Quality: Lossless storage eliminates DDS block compression artifacts
  • Cross-Platform Viewing: View textures without DDS-specific plugins
  • Web Display: Show texture art in browsers and online galleries
  • Efficient Archival: Often smaller than DDS while being lossless
  • Portfolio Ready: Showcase texture work with maximum fidelity
  • Modern Standard: ISO-standardized format with growing support
  • Metadata Support: Add EXIF/XMP metadata for asset management

Practical Examples

Example 1: Building a Game Texture Art Portfolio

Scenario: A texture artist has 500 DDS game textures and needs to create an online portfolio showcasing their work on ArtStation and personal website, where DDS files cannot be displayed.

Source: brick_wall_diffuse.dds (1.3 MB, 2048x2048, BC1/DXT1)
Conversion: DDS → JXL (lossless)
Result: brick_wall_diffuse.jxl (0.9 MB, 2048x2048, lossless)

Portfolio workflow:
1. Batch convert all DDS textures to JXL
2. Upload JXL versions to portfolio website
3. Use progressive decode for smooth gallery loading
✓ Block compression artifacts eliminated
✓ True texture quality visible to art directors
✓ 30% smaller than the DDS original (lossless)
✓ Works in Safari and compatible browsers natively

Example 2: Documenting Game Mod Texture Replacements

Scenario: A game modding community wiki needs before/after comparison images of texture replacement mods. The DDS files must be converted to web-viewable formats for the wiki pages.

Source: sword_blade_hd.dds (5.4 MB, 4096x4096, BC7)
Conversion: DDS → JXL (lossy, quality 95)
Result: sword_blade_hd.jxl (1.8 MB, 4096x4096)

Wiki documentation:
✓ Side-by-side comparisons viewable in browser
✓ Fine texture details visible without DDS plugins
✓ Reasonable file size for wiki hosting limits
✓ Progressive loading for quick preview
✓ Normal map and specular details clearly visible

Example 3: Archiving Extracted Game Assets

Scenario: A game preservation project needs to archive extracted textures from classic games in a future-proof format, maintaining exact pixel data for historical accuracy.

Source: level3_skybox.dds (2.1 MB, 1024x1024, BC3/DXT5 with alpha)
Conversion: DDS → JXL (lossless)
Result: level3_skybox.jxl (1.4 MB, 1024x1024, lossless)

Preservation archive:
✓ Every pixel preserved for historical accuracy
✓ Alpha channel (transparency) fully maintained
✓ ISO-standard format ensures decades of readability
✓ 33% storage savings over DDS originals
✓ Browsable without game-specific extraction tools

Frequently Asked Questions (FAQ)

Q: Are DDS mipmaps preserved during conversion to JXL?

A: The conversion extracts the highest-resolution mipmap level (the full-size texture) and converts it to JXL. Lower mipmap levels are not preserved, as they are pre-computed downscaled versions used only for GPU rendering. If you need mipmaps for game engine use, keep the original DDS files alongside the JXL conversions.

Q: What happens to DDS cube maps during conversion?

A: DDS cube maps contain 6 face images (positive/negative X, Y, Z). During conversion, the primary face or a flattened representation is extracted and converted to JXL. For complete cube map preservation, each face should be extracted and converted separately. Our converter processes the primary image data from the DDS file.

Q: Can I use JXL textures in game engines?

A: No — game engines require GPU-native compression formats (DDS with BC1-BC7) for real-time rendering. JXL is not a GPU texture format and cannot be loaded directly into video memory. Use DDS for your game engine pipeline and JXL for viewing, sharing, and archiving textures outside the rendering pipeline.

Q: Is the DDS to JXL conversion really lossless if DDS uses lossy block compression?

A: The conversion is lossless with respect to what is stored in the DDS file. If the DDS uses BC1 (lossy block compression), those pixels — already degraded by block compression — are preserved exactly in JXL. JXL does not add any additional quality loss. However, it cannot recover detail that was already lost during DDS compression. Converting from an uncompressed or BC7 DDS will yield higher quality JXL output.

Q: How does JXL file size compare to DDS?

A: Surprisingly, JXL lossless files are often 20-40% smaller than DDS files using block compression like BC1 or BC3. This is because DDS block compression has a fixed ratio (6:1 or 4:1) regardless of image content, while JXL adapts its compression to the actual pixel data. For simple textures with large uniform areas, JXL can be dramatically smaller. For highly detailed textures, sizes may be comparable.

Q: Will the alpha channel from DXT5/BC3 DDS textures be preserved?

A: Yes. DDS textures with alpha channels (DXT3, DXT5, BC3, BC7) will have their transparency data fully preserved in the JXL output. JXL supports full alpha channel with arbitrary bit depth, so even high-quality BC7 alpha information is maintained without any precision loss.

Q: Can I convert normal maps and specular maps from DDS to JXL?

A: Yes, though be aware that normal maps and specular maps are often stored in non-standard color spaces in DDS (e.g., BC5 two-channel normal maps). The converter reads the pixel data as-is and preserves it in JXL. The resulting JXL will look the same as the DDS when viewed, including the characteristic blue/purple appearance of tangent-space normal maps.

Q: What DDS compression formats are supported for conversion?

A: Our converter supports the most common DDS formats: uncompressed RGBA, DXT1 (BC1), DXT3 (BC3), DXT5 (BC3), BC4, BC5, BC6H (HDR), and BC7. The Pillow library handles DDS reading natively for these standard formats. Some proprietary DDS variants used by specific game engines may have limited support.