-
Notifications
You must be signed in to change notification settings - Fork 63
/
index.d.ts
101 lines (92 loc) · 1.92 KB
/
index.d.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
type Application = {
application: {
blockSize: number
blocks: number[]
codes: number[]
id: string
}
}
type Frame = {
gce: {
byteSize: number
codes: number[]
delay: number
terminator: number
transparentColorIndex: number
extras: {
userInput: boolean
transparentColorGiven: boolean
future: number
disposal: number
}
}
image: {
code: number
data: {
minCodeSize: number
blocks: number[]
}
descriptor: {
top: number
left: number
width: number
height: number
lct: {
exists: boolean
future: number
interlaced: boolean
size: number
sort: boolean
}
}
}
}
export type ParsedGif = {
frames: (Application | Frame)[]
gct: [number, number, number][]
header: {
signature: string
version: string
}
lsd: {
backgroundColorIndex: number
gct: {
exists: boolean
resolution: number
size: number
sort: boolean
}
height: number
width: number
pixelAspectRatio: number
}
}
export type ParsedFrame = {
dims: { width: number; height: number; top: number; left: number }
colorTable: [number, number, number][]
delay: number
disposalType: number
patch: Uint8ClampedArray
pixels: number[]
transparentIndex: number
}
export type ParsedFrameWithoutPatch = Omit<ParsedFrame, 'patch'>
export function parseGIF(arrayBuffer: ArrayBuffer): ParsedGif
export function decompressFrames(
parsedGif: ParsedGif,
buildImagePatches: true
): ParsedFrame[]
export function decompressFrames(
parsedGif: ParsedGif,
buildImagePatches: false
): ParsedFrameWithoutPatch[]
export function decompressFrame(
frame: Frame,
gct: [number, number, number][],
buildImagePatches: true
): ParsedFrame
export function decompressFrame(
frame: Frame,
gct: [number, number, number][],
buildImagePatches: false
): ParsedFrameWithoutPatch