Tiling ground texture
- Input
- disturb_dxt1_mip.dds, 174,904 bytes, 512×512 DXT1.
- Output
- 90,554-byte JPG in 8 ms.
DDS → JPG makes a small preview of a game texture for a mod page, a bug report or a texture catalogue, where transparency and exact texels do not matter.
From real runs
| Element | Result | What happens |
|---|---|---|
| File size | Changed | The 512×512 DXT1 texture went from 174,904 to 90,554 bytes; an uncompressed 800×600 DDS of 1,920,128 bytes became a 79,881-byte JPG. |
| Transparency | Lost | Alpha is flattened onto white by default: the DXT5 explosion became an 8,237-byte JPG on white, or 9,584 bytes on black with background #000000. |
| Opaque DXT1 textures | Kept | DXT1 always decodes with an alpha channel; when every pixel is opaque the channel is dropped, so a plain texture converts without a misleading transparency warning. |
| Texel accuracy | Changed | JPEG compression is applied on top of the DDS block compression, so the preview is fine for viewing but not for editing and re-exporting. |
| Mipmaps and cubemap faces | Lost | Only mip level 0 of the first face is written; the cubemap test produced one 33,227-byte JPG of a single side of the skybox. |
| HDR textures | Changed | BC6H lighting textures are clipped to 8-bit colour before JPEG encoding. |
The 512×512 DXT1 texture went from 174,904 to 90,554 bytes; an uncompressed 800×600 DDS of 1,920,128 bytes became a 79,881-byte JPG.
Alpha is flattened onto white by default: the DXT5 explosion became an 8,237-byte JPG on white, or 9,584 bytes on black with background #000000.
DXT1 always decodes with an alpha channel; when every pixel is opaque the channel is dropped, so a plain texture converts without a misleading transparency warning.
JPEG compression is applied on top of the DDS block compression, so the preview is fine for viewing but not for editing and re-exporting.
Only mip level 0 of the first face is written; the cubemap test produced one 33,227-byte JPG of a single side of the skybox.
BC6H lighting textures are clipped to 8-bit colour before JPEG encoding.
We converted our DirectDraw Surface (DDS) sample (281 KB) with Image engine on 2026-10-20. It took 20 ms and produced a 51 KB JPEG file, 82% smaller than the input. The engine raised 2 warnings, listed below.
Input · sample.dds · 281 KB
288,128 bytes
Output · sample.jpg · 51 KB
480 × 600 px, baseline
texconv (DirectXTex, Windows)
texconv -ft jpg -o previews *.ddsBatch-converts a folder; check textures with alpha afterwards, since JPG cannot keep transparency.
ImageMagick
magick texture.dds -background black -flatten -quality 85 texture.jpgBC6H and BC7 support depends on the ImageMagick build; DXT1, DXT3 and DXT5 are widely supported.
The HTTP API and the MCP server run the exact engine this page uses (Image engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=dds&to=jpg.
curl -X POST https://filetypeconverters.com/api/v1/convert \
-H "Authorization: Bearer $FTC_API_KEY" \
-F "file=@input.dds" -F "from=dds" -F "to=jpg" \
-F 'options={"width":0}' \
--output output.jpg| Key | Applies to | Type | Default |
|---|---|---|---|
| width | Writing JPEG | number | 0 |
| height | Writing JPEG | number | 0 |
| fit | Writing JPEG | contain · cover · fill | contain |
| quality | Writing JPEG | number | 90 |
| background | Writing JPEG | string | #ffffff |
| stripMetadata | Writing JPEG | boolean | true |
DXT1 textures are decoded with an alpha channel even when every pixel is opaque, and the warning is raised whenever the decoded image has one. If your texture had no cut-outs, nothing was actually filled.
Its transparent pixels were filled with the default white background. Set background to #000000 for sprites drawn for additive blending.
Not with this converter; it writes the first face only. GIMP's DDS import loads the faces as layers, and each layer can be exported on its own.