UNPKG

2.55 kBTypeScriptView Raw
1/// <reference types="node" />
2
3import { Duplex } from "stream";
4import { createDeflate } from "zlib";
5
6export class PNG extends Duplex {
7 static adjustGamma(src: PNG): void;
8
9 static bitblt(
10 src: PNG,
11 dst: PNG,
12 srcX?: number,
13 srcY?: number,
14 width?: number,
15 height?: number,
16 deltaX?: number,
17 deltaY?: number,
18 ): void;
19
20 static sync: {
21 read(buffer: Buffer, options?: ParserOptions): PNGWithMetadata;
22 write(png: PNG, options?: PackerOptions): Buffer;
23 };
24
25 constructor(options?: PNGOptions);
26
27 data: Buffer;
28 gamma: number;
29 height: number;
30 width: number;
31
32 adjustGamma(): void;
33
34 bitblt(
35 dst: PNG,
36 srcX?: number,
37 srcY?: number,
38 width?: number,
39 height?: number,
40 deltaX?: number,
41 deltaY?: number,
42 ): PNG;
43
44 on(event: "metadata", callback: (this: PNG, metadata: Metadata) => void): this;
45 on(event: "parsed", callback: (this: PNG, data: Buffer) => void): this;
46 on(event: "error", callback: (this: PNG, error: Error) => void): this;
47 on(event: "close", callback: (this: PNG) => void): this;
48 on(event: string, callback: (this: PNG, ...args: any[]) => void): this;
49
50 pack(): PNG;
51
52 parse(data: string | Buffer, callback?: (error: Error, data: PNG) => void): PNG;
53}
54
55export interface BaseOptions {
56 fill?: boolean | undefined;
57 height?: number | undefined;
58 width?: number | undefined;
59}
60
61export interface ParserOptions {
62 checkCRC?: boolean | undefined;
63 skipRescale?: boolean | undefined;
64}
65
66export interface PackerOptions {
67 bgColor?: {
68 red: number;
69 green: number;
70 blue: number;
71 } | undefined;
72 bitDepth?: BitDepth | undefined;
73 colorType?: ColorType | undefined;
74 deflateChunkSize?: number | undefined;
75 deflateFactory?: typeof createDeflate | undefined;
76 deflateLevel?: number | undefined;
77 deflateStrategy?: number | undefined;
78 filterType?: number | number[] | undefined;
79 inputColorType?: ColorType | undefined;
80 inputHasAlpha?: boolean | undefined;
81}
82
83export type PNGOptions = BaseOptions & ParserOptions & PackerOptions;
84
85export type PNGWithMetadata = PNG & Metadata;
86
87export type ColorType = 0 | 2 | 4 | 6;
88
89export type BitDepth = 8 | 16;
90
91export interface Metadata {
92 alpha: boolean;
93 bpp: 1 | 2 | 3 | 4;
94 color: boolean;
95 colorType: ColorType;
96 depth: 1 | 2 | 4 | 8 | 16;
97 height: number;
98 interlace: boolean;
99 palette: boolean;
100 width: number;
101}