Convert to KTX2
Convert images to Khronos KTX2 texture format — free, private, runs entirely in your browser.
Convert any image to KTX2 GPU texture format instantly — free, private, and in your browser. Perfect for game dev and real-time 3D. No upload, no sign-up, no file size limits.
Drop files here or click to browse
Supported formats: BMP, DDS, GIF, HDR, ICO, JPEG, KTX, PGM, PIC, PNG, PPM, PSD, TGA, WebP
Settings
Off keeps a standard uncompressed KTX2. ETC1S and UASTC produce a Basis-supercompressed KTX2 — a tiny GPU-ready texture for WebGL, three.js and game engines. Loads a small extra encoder module on first use.
Folder
No data transfer — all data stays on your device!
About the KTX2 Format
KTX2 (Khronos Texture, version 2) is a lightweight container format for GPU textures, standardised by the Khronos Group. It is designed to deliver textures efficiently to graphics APIs such as Vulkan, OpenGL, and WebGPU. KTX2 supports a wide variety of pixel formats — including compressed formats like ASTC, ETC, and BC — as well as supercompression with Zstandard or BasisLZ for minimal file sizes. The format is commonly used in game development, real-time 3D applications, and glTF assets where fast GPU upload and compact storage are critical.
KTX2, DDS or Basis: which to ship
Choose by where the texture will run. Every format below comes out of this site without an upload.
| Format | Setting here | Best for |
|---|---|---|
| KTX2, plain | Supercompress: Off | Uncompressed pixels in a Khronos container. The largest files. Use it when a tool needs KTX2 and size does not matter. |
| KTX2 with Basis | Supercompress: ETC1S or UASTC | One file that a loader turns into the GPU format of the device (BC, ASTC or ETC) at load time. Use it for web, glTF and mobile builds that must run on many GPUs. |
| DDS | Image to DDS, DXT1 or DXT5 | Block-compressed textures for DirectX, Unreal Engine and Unity on PC. Use it when every target is a desktop GPU. |
Short version: ship KTX2 with Basis when the texture goes to a browser or a phone, and DDS when it only goes to PCs.
ETC1S or UASTC: one texture, three settings
We converted one test texture with each Supercompress setting on this page. The texture is a 512 by 512 pixel procedural image (layered noise with a checker overlay), saved as a 787 kB PNG. The script that builds it and takes the measurement is in our test suite: tests/e2e/ktx2-roundtrip.spec.js.
| Supercompress setting | KTX2 size |
|---|---|
| Off (plain KTX2) | 1049 kB |
| ETC1S | 37 kB |
| UASTC | 262 kB |
In this test ETC1S gave the smallest file, and the UASTC file was about 7 times larger. Other textures compress differently, so try your own in the converter above and check the result in your engine.
Convert a whole texture set
Drop many files at once. Each one comes back as its own .ktx2 file, and your browser may ask you to allow multiple downloads. There is no sign-in, and this page sets no limit on the number of files. In our test, 12 textures dropped together with ETC1S selected gave 12 KTX2 files. For comparison, the Cinevva online KTX2 compressor says “The Batch tab converts up to 10 images at once.” and “It's free, you just sign in to unlock it” (app.cinevva.com, checked 2026-11-01).
Going back: KTX2 to PNG
Plain KTX2 files, such as the ones this page makes with Supercompress set to Off, convert back on the KTX2 to PNG converter. In our round-trip test the pixels came back identical. KTX2 files made with ETC1S or UASTC do not open there yet, so keep your source PNG if you may need the pixels again.
Use the textures in glTF
KTX2 with Basis is the texture format that the glTF extension KHR_texture_basisu uses. Turn your models into glTF with the 3D to glTF converter, shrink the result with Optimize glTF, and bring the textures from this page.
Questions about KTX2 conversion
How do I convert a PNG to KTX2 without toktx or the command line?
Open the converter above and drop your PNG onto it. The file becomes a KTX2 texture in your browser, so there is nothing to install and nothing to upload. The result downloads when it is ready.
Can I create a KTX2 texture in the browser with no upload?
Yes. Conversion runs on your device with WebAssembly, so your image is never sent to a server. It works without an account, and this page sets no file-size limit.
What is the difference between ETC1S and UASTC?
ETC1S gives the smallest files. UASTC gives larger ones: for the test texture on this page, 37 kB against 262 kB. Pick either in the Supercompress menu, or leave it on Off for a plain KTX2 file.
Is Basis supercompression free here?
Yes. Conversion with Basis ETC1S and UASTC is free, with no sign-in, no watermark and no limit on how many textures you convert.
Can I turn a KTX2 file back into a PNG?
Plain KTX2 files, yes: use the KTX2 to PNG converter. Files made with ETC1S or UASTC are not supported there yet.
Features
Near-Zero CO₂
Server-based converters upload your file, process it remotely, and send it back — consuming network and data-centre energy on every request. WebConverter runs entirely on your device, so the only energy used is your local CPU. No data transfer, no server electricity.
Install for Offline Use
WebConverter works offline as a Progressive Web App. Click "Add to Home Screen" on mobile or the install button in your browser's address bar. Once installed, you can convert files without any internet connection.