# dds-ktx-parser

> Parse image files with DDS and KTX format and decode some of formats to RGB/RGBA array.

Latest version **1.0.1** (published 2024-02-02) · MIT license · 0 weekly downloads

## Install

```sh
npm install dds-ktx-parser
pnpm add dds-ktx-parser
yarn add dds-ktx-parser
bun add dds-ktx-parser
```

## Health

**Score 45/100 (D)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities; high maintenance score; high quality score.

Warnings: low downloads.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2024-02-02 |
| First published | 2024-02-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 635.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | sh0c |
| Maintainers | sh0c |
| Keywords | dds, ktx, parser, decoder |

## Links

- npm: https://www.npmjs.com/package/dds-ktx-parser
- Repository: https://github.com/sh0c/dds-ktx-parser
- Issues: https://github.com/sh0c/dds-ktx-parser
- npm.io page: https://npm.io/package/dds-ktx-parser

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 1.0.1 (latest) — 2024-02-02
- 1.0.0 — 2024-02-02

## README

# dds-ktx-parser

[![stable](http://badges.github.io/stability-badges/dist/stable.svg)](http://github.com/badges/stability-badges)

### HEADER PARSING

Parse .DDS and .KTX files and return ImageInfo about format, mipmaps and shape of image
 - [x] DDS file parse
 - [X] KTX file parse

On ERROR function will return **undefined**
```ts
interface ImageInfo {
    readonly shape: ImageShape // width and height
    readonly layers: Array<LayerInfo> // mipmap info
    readonly format: ImageFormat // format of image
}
```

Supported parse Image formats:
 - [x] Compressed (BC1, BC2, BC3, BC4, BC5, BC6H, BC7)
 - [ ] Raw formats (RGBA, RGB, RG, R) (TODO)

### DATA PARSING

Image can be decoded to **RGBA Buffer** layer by layer without external dependencies (only CPU usage)
Supproted decode formats:
 - [x] BC1
 - [x] BC2
 - [x] BC3
 - [x] BC4
 - [x] BC5
 - [X] BC6H
 - [X] BC7
 - [ ] Raw formats - R, RG, RGB (TODO)

 ### EXAMPLE

```ts
import { parseDDSHeader, decodeImage } from './src'
import * as fs from "fs"

const buffer = fs.readFileSync('./tests/resources/dds/bc1.dds')
const imageInfo = parseDDSHeader(buffer)
if (imageInfo) {
    const rgbaBuffer = decodeImage(buffer, imageInfo.format, imageInfo.layers[0])
}

const buffer = fs.readFileSync('./tests/resources/ktx/bc1.ktx')
const imageInfo = parseKTXHeader(buffer)
if (imageInfo) {
    const rgbaBuffer = decodeImage(buffer, imageInfo.format, imageInfo.layers[0])
}
```

---
_Source: https://npm.io/package/dds-ktx-parser · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
