mirror of
https://github.com/FlipsideCrypto/DefinitelyTyped.git
synced 2026-02-06 10:56:53 +00:00
77 lines
1.8 KiB
TypeScript
Executable File
77 lines
1.8 KiB
TypeScript
Executable File
// Type definitions for bmp-js 0.1
|
|
// Project: https://github.com/shaozilee/bmp-js
|
|
// Definitions by: Robert Krahn <https://github.com/rksm>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
/// <reference types="node" />
|
|
|
|
export interface ImageData {
|
|
readonly data: Buffer;
|
|
readonly height: number;
|
|
readonly width: number;
|
|
}
|
|
|
|
export type Encode = (imgData: ImageData, quality?: number) => ImageData;
|
|
|
|
/**
|
|
* Bmp format decoder, support 1bit 4bit 8bit 24bit bmp
|
|
*/
|
|
export class BmpDecoder implements ImageData {
|
|
private pos: number;
|
|
data: Buffer;
|
|
fileSize: number;
|
|
reserved: number;
|
|
offset: number;
|
|
headerSize: number;
|
|
width: number;
|
|
height: number;
|
|
planes: number;
|
|
bitPP: number;
|
|
compress: number;
|
|
rawSize: number;
|
|
hr: number;
|
|
vr: number;
|
|
colors: number;
|
|
importantColors: number;
|
|
bottom_up: boolean;
|
|
|
|
palette: Array<{
|
|
red: number;
|
|
green: number;
|
|
blue: number;
|
|
quad: number;
|
|
}>;
|
|
|
|
constructor(buffer: Buffer, is_with_alpha?: boolean);
|
|
|
|
/**
|
|
* Returns the data buffer - byte array order by ABGR ABGR ABGR,4 bytes per pixel
|
|
*/
|
|
getData(): Buffer;
|
|
|
|
private parseHeader(): void;
|
|
private parseRGBA(): void;
|
|
private bit1(): void;
|
|
private bit4(): void;
|
|
private bit8(): void;
|
|
private bit15(): void;
|
|
private bit16(): void;
|
|
private bit24(): void;
|
|
private bit32(): void;
|
|
}
|
|
|
|
export type Decode = (bmpData: Buffer) => BmpDecoder;
|
|
|
|
/**
|
|
* var bmp = require("bmp-js");
|
|
* var bmpBuffer = fs.readFileSync('bit24.bmp');
|
|
* var bmpData = bmp.decode(bmpBuffer);
|
|
*/
|
|
export const decode: Decode;
|
|
|
|
/**
|
|
* var bmp = require("bmp-js");
|
|
* var rawData = bmp.encode(bmpData); //default no compression,write rawData to .bmp file
|
|
*/
|
|
export const encode: Encode;
|