LarpixClient/node_modules/gifuct-js/index.d.ts
olcxja 95aaaa69ea
All checks were successful
Android Build / publish (push) Successful in 57s
Linux Build / publish (push) Successful in 53s
big updat:
- update dependencies
- add webp support and webp conversion for profile images
2026-07-02 22:40:46 +02:00

101 lines
2 KiB
TypeScript

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