1 |
|
2 |
|
3 | import { Duplex } from "stream";
|
4 | import { createDeflate } from "zlib";
|
5 |
|
6 | export 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 |
|
55 | export interface BaseOptions {
|
56 | fill?: boolean | undefined;
|
57 | height?: number | undefined;
|
58 | width?: number | undefined;
|
59 | }
|
60 |
|
61 | export interface ParserOptions {
|
62 | checkCRC?: boolean | undefined;
|
63 | skipRescale?: boolean | undefined;
|
64 | }
|
65 |
|
66 | export 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 |
|
83 | export type PNGOptions = BaseOptions & ParserOptions & PackerOptions;
|
84 |
|
85 | export type PNGWithMetadata = PNG & Metadata;
|
86 |
|
87 | export type ColorType = 0 | 2 | 4 | 6;
|
88 |
|
89 | export type BitDepth = 8 | 16;
|
90 |
|
91 | export 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 | }
|