UNPKG

image-size

Version:
25 lines (22 loc) 761 B
// lib/types/utils.ts var decoder = new TextDecoder(); var toUTF8String = (input, start = 0, end = input.length) => decoder.decode(input.slice(start, end)); var getView = (input, offset) => new DataView(input.buffer, input.byteOffset + offset); var readUInt32LE = (input, offset = 0) => getView(input, offset).getUint32(0, true); // lib/types/ktx.ts var KTX = { validate: (input) => { const signature = toUTF8String(input, 1, 7); return ["KTX 11", "KTX 20"].includes(signature); }, calculate: (input) => { const type = input[5] === 49 ? "ktx" : "ktx2"; const offset = type === "ktx" ? 36 : 20; return { height: readUInt32LE(input, offset + 4), width: readUInt32LE(input, offset), type }; } }; export { KTX };