Reliable Decoding
Supports 1/4/8/15/16/24/32-bit BMP, plus RLE4/RLE8 decoding with malformed-fixture guardrails.
@huh-david/bmp-js A pure TypeScript BMP encoder/decoder with fixture-backed behavior, dual ESM/CJS packaging, and a modern release flow.
import { decode, encode } from "@huh-david/bmp-js";
import { readFileSync, writeFileSync } from "node:fs";
const input = readFileSync("./in.bmp");
const decoded = decode(input);
const encoded = encode({
data: decoded.data,
width: decoded.width,
height: decoded.height,
});
writeFileSync("./out.bmp", encoded.data);Decoded pixel layout is
ABGRby default.
Usedecode(..., { toRGBA: true })when your consumer expects RGBA ordering.
Supports 1/4/8/15/16/24/32-bit BMP, plus RLE4/RLE8 decoding with malformed-fixture guardrails.
Writes 1/4/8/16/24/32-bit BMP output, orientation control, and palette-aware paths for indexed formats.
Strict TypeScript, reproducible releases, CI quality gates, and trusted publishing with provenance.