ConvertFileBox

DDS to PNG Converter — Extract Game Textures

Select files or drop them anywhere

Process up to 50 files instantly. 100% private — processed locally in your browser.

Or paste files directly from your clipboard.

  • 100% Client-Side Processing
  • Multi-file Queue
  • Free & Anonymous

What is a DDS file?

DDS (DirectDraw Surface) is Microsoft's container for GPU-ready textures. Unlike PNG, which stores pixels, a DDS file stores data in the exact block-compressed form a graphics card reads directly — which is why games ship textures as DDS: tiny files, instant loading, no decompression step at runtime. That same advantage is why ordinary image viewers and editors cannot open DDS files without a plugin, and why converting to PNG is the first step of any texture-editing workflow.

DDS compression formats, in plain English

Not all DDS files are compressed the same way — and the compression type explains a lot about your file's size and quality. The names you'll see are BC1 through BC7 (older tools call the first three DXT1, DXT3 and DXT5):

FormatBits / pixelAlphaWhere you meet it
BC1 (DXT1)41-bit onlyOlder games, opaque textures, UI without transparency
BC2 (DXT3)8Full, explicitTextures with sharp alpha cut-outs
BC3 (DXT5)8Full, interpolatedThe workhorse — most transparent game textures you've ever downloaded
BC44— (one channel)Heightmaps, single-channel masks
BC58— (two channels)Normal maps — X in red, Y in green, Z reconstructed
BC6H8— (HDR float)HDR environment maps and light probes
BC78FullCurrent games — the modern replacement for BC1–BC3
Uncompressed16–32OptionalDevelopment builds, simple textures

Whichever of these your file uses, the converter decompresses it to full pixels first and then saves those pixels as PNG, which is lossless. The conversion itself adds zero new quality loss — but it cannot recover detail the original lossy compression already discarded. A BC1 texture will never become sharper as a PNG; it just stops getting worse, and becomes editable everywhere.

Mipmaps and file size: two things that surprise people

A DDS texture usually contains more than one image: a chain of pre-shrunk copies called mipmaps (full size, half size, quarter size, and so on). Games use them to render distant objects cheaply without shimmering. PNG has no concept of mipmaps, so the converter outputs the largest, full-resolution image and drops the smaller copies — which is exactly what you want for viewing or editing. The card tells you how many levels were in the file, so the drop is never silent. (If your engine needs mipmaps back, it regenerates them automatically when you re-import the texture.)

The second surprise is file size: the PNG will usually be much bigger than the DDS — often several times larger. That is expected, not a bug. A BC1-compressed DDS stores each pixel in 4 bits; the same image as a 24-bit PNG needs 24 bits per pixel (32 with transparency). The PNG is not adding detail; it is just storing the same pixels without the GPU-specific compression. If disk space matters, keep the DDS as your archive and convert copies only when you need to view or edit them.

Extracting textures from games: where the DDS files actually live

No converter page tells you this part, and it is where most modders get stuck before they ever reach a converter. Read our complete guide on how to extract game textures to PNG for engine-specific unpacking steps, normal map handling, and repacking. The extraction step depends on the engine:

Unreal Engine games

Textures live inside .pak archives (older titles) or .utoc/.ucas containers (UE5). Open the game's content folder with FModel or extract with UnrealPak, filter for .uasset texture files, and export — the exported textures arrive as DDS. Unreal's own textures are usually BC7 (current titles) or BC3/BC1 (older ones), often with full mipmap chains.

Unity games

Textures live in .assets bundles and AssetBundles. AssetStudio or AssetRipper open those bundles, let you filter by Texture2D, and export the textures — typically as DDS for desktop builds (mobile builds use ASTC/ETC instead, which this converter does not handle). Unity normal maps arrive as BC5 or BC7; the BC5 normal-map handling above applies directly.

Skyrim, Fallout and other Bethesda games

Textures are packed in .bsa/.ba2 archives. Open the archive with BSA Browser (or Bethesda's Archive.exe), extract the textures folder, and you have a folder of DDS files — overwhelmingly BC3 for diffuse textures with alpha and BC5 for normal maps. This is the single most common DDS-to-PNG batch workload in modding: a single armor or environment pack can mean hundreds of textures, which is why the converter above takes whole batches.

GTA V and RAGE engine games

Textures are packed in .ytd files inside the game's .rpf archives. OpenIV opens the archives, and .ytd files export their embedded textures as DDS. GTA textures are commonly BC3/BC1 with mipmaps; UI sprites and decals are the ones where alpha preservation matters most.

One contrast worth knowing: Minecraft resource packs already ship textures as PNG, so Minecraft modders never meet DDS at all. If you are coming from Minecraft modding and a tutorial suddenly mentions DDS, you have crossed into engines that ship GPU-compressed textures — the workflow above is the bridge.

Normal maps and BC5: the purple texture that is not broken

If you extract a normal map and convert it, the PNG looks purple and green. That is correct. A tangent-space normal map stores the surface direction's X component in the red channel and Y in green; blue is reconstructed from those two (Z = √(1 − X² − Y²)). This converter does that reconstruction by default for BC5 files, so the PNG you edit is a valid normal map. Two practical notes: if lighting looks inverted in-engine after your edit, the engine probably expects the opposite Y convention (OpenGL Y-up vs DirectX Y-down) — flipping the green channel fixes it. And never run a normal map through a lossy format on the way back; re-export to BC5/BC7, not JPEG.

Cubemaps, texture arrays and the DX10 header

DDS can store cubemaps (six faces of an environment map), texture arrays (many slices in one file) and volume textures. This converter exports the first face/slice and reports the count. Modern games also ship DDS files with a DX10 extended header, which replaces the old FourCC code with a DXGI format number — that is how BC7 and sRGB variants are identified. The converter reads both header styles, so a DX10 BC3 file and a legacy DXT5 file decode identically. One related fact: sRGB-flagged textures decode to the same pixels — PNG viewers assume sRGB anyway, so no colour shift is introduced.

DDS to PNG for game modding: the full round trip

The standard modding loop is: extract the texture from the game's archives, convert it to PNG, repaint or upscale it in GIMP, Photoshop or Paint.NET, then save it back as DDS (BC3 or BC7 via a free DDS plugin) and repack it. PNG is the ideal middle format because every image editor opens it and it preserves the alpha channel your transparency masks live in. That round trip is also why batch conversion matters — a single armor set or environment pack can mean hundreds of textures. Convert the whole folder at once here, do your edits, and export back to DDS when you are done. (One housekeeping note: only convert and redistribute textures you have the rights to — most modding communities, including Nexus Mods, enforce this strictly.)

How it works

  1. Drop your .dds textures onto the page or click SELECT FILES — whole folders convert in one batch.
  2. Click CONVERT. Each texture is decompressed to full pixels — DXT/BC compression, mipmaps and alpha handled — and encoded as PNG in memory. Nothing is stored.
  3. Click the green Download .PNG button on each card. Browsers block automatic multiple downloads, so per-card buttons are the reliable path; SAVE ALL attempts the batch from one click.

Frequently Asked Questions

Which DDS compression types can I convert — DXT1, DXT5, BC7?

BC1 (DXT1), BC2 (DXT3), BC3 (DXT5), BC4 and BC5, plus uncompressed DDS files — the formats the overwhelming majority of shipped game textures use. BC6H (HDR) and BC7 files are detected and answered with a clear explanation instead of a broken image: convert those with Microsoft texconv (texconv -f R8G8B8A8_UNORM file.dds) or NVIDIA Texture Tools Exporter until BC7 decoding lands here. If you have an exotic variant — volume textures or very old pre-DirectX 8 files — convert one file first and check the output before running a full batch.

Does it convert all the mipmaps, or just the main image?

Just the main, full-resolution image. PNG cannot store mipmap chains, so the smaller pre-shrunk copies inside the DDS are dropped — and the card tells you how many levels were in the file, so nothing is hidden. For viewing, editing or re-texturing work, the full-resolution image is the only level you need. If your engine needs mipmaps back, it regenerates them automatically when you re-import the texture.

Why is my PNG so much bigger than the DDS file?

GPU texture compression is extremely dense — a BC1/DXT1 texture uses 4 bits per pixel versus 24–32 bits in a PNG. The PNG is bigger because it stores every pixel losslessly without that compression, not because anything was added. Expect files several times larger; it is normal. If disk space matters, keep the DDS as your archive and convert copies only when you need to view or edit them.

What happens with cubemaps or texture arrays?

DDS can store cubemaps (six faces) and texture arrays. The converter outputs the primary image — the first face of a cubemap, the first slice of an array — and the card reports the face count so you know what you got. If you need all six faces as separate files, split them first with a desktop tool like NVIDIA Texture Tools or GIMP.

Why does my DDS look black or dark before converting?

Almost always the alpha channel. Many DDS textures are mostly transparent (decals, foliage, UI elements), and preview tools composite that transparency against black — so the file looks dark even though the color data is fine. The PNG preserves the same alpha channel, so it looks identical wherever transparency is rendered properly, and opens correctly in any editor.

Can I use this for game modding?

Yes — that is one of the most common uses. Extract the textures from the game's archives, batch-convert to PNG, edit them in Photoshop, GIMP or Paint.NET, then save back to DDS (BC3 or BC7 with a free plugin) and repack. See the modding section below for the per-engine extraction steps and the full round trip.

Can I convert PNG back to DDS?

A dedicated PNG to DDS converter is on the way — the round trip is exactly what modders need, and it is the natural companion to this page. Until it is live, the free GIMP DDS plugin, NVIDIA Texture Tools Exporter, or Microsoft texconv handle PNG to DDS on desktop (texconv -f BC7_UNORM_SRGB -m 9 texture.png produces a mipmapped BC7 DDS).

My normal map looks purple and green — is the conversion broken?

No, that is what a normal map is supposed to look like. BC5 normal maps store the surface direction's X component in red and Y in green; blue is reconstructed from those two, which is why the converter rebuilds Z into blue by default (untick 'Treat BC5 files as normal maps' if your BC5 file is generic two-channel data instead). If your normal map looks flat or inverted in-engine, check whether the engine expects OpenGL-style (Y-up) or DirectX-style (Y-down) normals — flipping the green channel fixes most 'wrong lighting' reports.

Related converters and guides