|
| 1 | +export class Image { |
| 2 | + private __width__: number; |
| 3 | + private __height__: number; |
| 4 | + private __buffer__: ArrayBuffer; |
| 5 | + private __view__: DataView; |
| 6 | + private __u32__: Uint32Array; |
| 7 | + bitmap: Uint8ClampedArray; |
| 8 | + |
| 9 | + constructor(width: number, height: number); |
| 10 | + |
| 11 | + private toString(): string; |
| 12 | + |
| 13 | + get width(): number; |
| 14 | + |
| 15 | + get height(): number; |
| 16 | + |
| 17 | + * [Symbol.iterator](): void; |
| 18 | + |
| 19 | + * iterateWithColors(): Generator<[x: number, y: number, color: number], void, unknown>; |
| 20 | + |
| 21 | + static rgbaToColor(r: number, g: number, b: number, a: number): number; |
| 22 | + |
| 23 | + static rgbToColor(r: number, g: number, b: number): number; |
| 24 | + |
| 25 | + static hslaToColor(h: number, s: number, l: number, a: number): number; |
| 26 | + |
| 27 | + static hslToColor(h: number, s: number, l: number): number; |
| 28 | + |
| 29 | + static rgbaToHSLA(r: number, g: number, b: number, a: number): number[]; |
| 30 | + |
| 31 | + static colorToRGBA(color: number): number[]; |
| 32 | + |
| 33 | + static colorToRGB(color: number): number[]; |
| 34 | + |
| 35 | + getPixelAt(x: number, y: number): number; |
| 36 | + |
| 37 | + getRGBAAt(x: number, y: number): Uint8ClampedArray; |
| 38 | + |
| 39 | + setPixelAt(x: number, y: number, pixelColor: number): Image; |
| 40 | + |
| 41 | + private __set_pixel__(x: number, y: number, pixelColor: number): void; |
| 42 | + |
| 43 | + private __check_boundaries__(x: number, y: number): void; |
| 44 | + |
| 45 | + private static get __out_of_bounds__(): string; |
| 46 | + |
| 47 | + fill(color: number | colorFunction): Image; |
| 48 | + |
| 49 | + clone(): Image; |
| 50 | + |
| 51 | + static get RESIZE_NEAREST_NEIGHBOR(): string; |
| 52 | + |
| 53 | + static get RESIZE_AUTO(): number; |
| 54 | + |
| 55 | + scale(factor: number, mode?: string): Image; |
| 56 | + |
| 57 | + private __scale__(factor: number, mode?: string); |
| 58 | + |
| 59 | + resize(width: number, height: number, mode?: string): Image; |
| 60 | + |
| 61 | + contain(width: number, height: number, mode?: string): Image; |
| 62 | + |
| 63 | + fit(width: number, height: number, mode?: string): Image; |
| 64 | + |
| 65 | + cover(width: number, height: number, mode?: string): Image; |
| 66 | + |
| 67 | + private __resize__(width: number, height: number, mode?: string): Image; |
| 68 | + |
| 69 | + private __resize_nearest_neighbor__(width: number, height: number): Image; |
| 70 | + |
| 71 | + crop(x: number, y: number, width: number, height: number): Image; |
| 72 | + |
| 73 | + private __crop__(x: number, y: number, width: number, height: number): Image; |
| 74 | + |
| 75 | + drawBox(x: number, y: number, width: number, height: number, color: number | colorFunction): Image; |
| 76 | + |
| 77 | + private __fast_box__(x: number, y: number, width: number, height: number, color: number): Image; |
| 78 | + |
| 79 | + drawCircle(x: number, y: number, radius: number, color: number | colorFunction): Image; |
| 80 | + |
| 81 | + cropCircle(max?: boolean, feathering?: number): Image; |
| 82 | + |
| 83 | + opacity(opacity: number, absolute?: boolean): Image; |
| 84 | + |
| 85 | + red(saturation: number, absolute?: boolean): Image; |
| 86 | + |
| 87 | + green(saturation: number, absolute?: boolean): Image; |
| 88 | + |
| 89 | + blue(saturation: number, absolute?: boolean): Image; |
| 90 | + |
| 91 | + private __set_channel_value__(value: number, absolute: boolean, offset: number): void; |
| 92 | + |
| 93 | + lightness(value: number, absolute?: boolean): Image; |
| 94 | + |
| 95 | + saturation(value: number, absolute?: boolean): Image; |
| 96 | + |
| 97 | + composite(source: Image, x?: number, y?: number): Image; |
| 98 | + |
| 99 | + invert(): Image; |
| 100 | + |
| 101 | + invertValue(): Image; |
| 102 | + |
| 103 | + invertSaturation(): Image; |
| 104 | + |
| 105 | + invertHue(): Image; |
| 106 | + |
| 107 | + hueShift(degrees: number): Image; |
| 108 | + |
| 109 | + averageColor(): number; |
| 110 | + |
| 111 | + dominantColor(ignoreBlack?: boolean, ignoreWhite?: boolean, bwThreshold?: number): number; |
| 112 | + |
| 113 | + rotate(angle: number, resize?: boolean): Image; |
| 114 | + |
| 115 | + private __apply__(image: Image | Frame): Image | Frame; |
| 116 | + |
| 117 | + static gradient(colors: { [position: number]: number; }): ((position: number) => number); |
| 118 | + |
| 119 | + roundCorners(radius?: number): Image; |
| 120 | + |
| 121 | + private static __gradient__(startColor: number, endColor: number): number; |
| 122 | + |
| 123 | + fisheye(radius?: number): Image; |
| 124 | + |
| 125 | + async encode(compression?: number, metadata?: PNGMetadata): Promise<Uint8Array>; |
| 126 | + async encode(metadata?: PNGMetadata): Promise<Uint8Array>; |
| 127 | + |
| 128 | + async encodeJPEG(quality?: number): Promise<Uint8Array>; |
| 129 | + |
| 130 | + async encodeWEBP(quality?: null | number): Promise<Uint8Array>; |
| 131 | + |
| 132 | + static async encode(data: Buffer | Uint8Array): Promise<Image> |
| 133 | + |
| 134 | + static get SVG_MODE_SCALE(): number; |
| 135 | + |
| 136 | + static get SVG_MODE_WIDTH(): number; |
| 137 | + |
| 138 | + static get SVG_MODE_HEIGHT(): number; |
| 139 | + |
| 140 | + static async renderSVG(svg: string, size?: number, mode?: number): Promise<Image>; |
| 141 | + |
| 142 | + static async renderText(font: Uint8Array, scale: number, text: string, color?: number, layout?: TextLayout): Promise<Image>; |
| 143 | +}; |
| 144 | + |
| 145 | +export class Frame extends Image { |
| 146 | + static get DISPOSAL_KEEP(): string; |
| 147 | + |
| 148 | + static get DISPOSAL_PREVIOUS(): string; |
| 149 | + |
| 150 | + static get DISPOSAL_BACKGROUND(): string |
| 151 | + |
| 152 | + private static __convert_disposal_mode__(mode: string | number): any; |
| 153 | + |
| 154 | + constructor(width: number, height: number, duration?: number, xOffset?: number, yOffset?: number, disposalMode?: typeof Frame.DISPOSAL_KEEP | string); |
| 155 | + |
| 156 | + toString(): string; |
| 157 | + |
| 158 | + static from(image: Image, duration?: number, xOffset?: number, yOffset?: number, disposalMode?: typeof Frame.DISPOSAL_KEEP | string): Frame; |
| 159 | + |
| 160 | + resize(width: number, height: number, mode?: typeof Image.RESIZE_NEAREST_NEIGHBOR | string): Image; |
| 161 | +}; |
| 162 | + |
| 163 | +export class GIF extends Array { |
| 164 | + constructor(frames: Frame[], loopCount?: number); |
| 165 | + |
| 166 | + get width(): number; |
| 167 | + |
| 168 | + get height(): number; |
| 169 | + |
| 170 | + toString(): string; |
| 171 | + |
| 172 | + * [Symbol.iterator](): Generator<Frame, void, *> |
| 173 | + |
| 174 | + slice(start: number, end: number): GIF; |
| 175 | + |
| 176 | + get duration(): number; |
| 177 | + |
| 178 | + async encode(quality?: number): Promise<Uint8Array> |
| 179 | + |
| 180 | + static async decode(data: Buffer | Uint8Array, onlyExtractFirstFrame?: boolean): Promise<GIF>; |
| 181 | + |
| 182 | + resize(width: number, height: number, mode?: typeof Image.RESIZE_NEAREST_NEIGHBOR | string): void; |
| 183 | +} |
| 184 | + |
| 185 | +export class TextLayout { |
| 186 | + constructor(options?: { |
| 187 | + maxWidth?: number, |
| 188 | + maxHeight?: number, |
| 189 | + wrapStyle?: string, |
| 190 | + verticalAlign?: string, |
| 191 | + horizontalAlign?: string, |
| 192 | + wrapHardBreaks?: boolean |
| 193 | + }); |
| 194 | +}; |
| 195 | + |
| 196 | +export class ImageType { |
| 197 | + static getType(data: Buffer | Uint8Array): string | null; |
| 198 | + |
| 199 | + static isPNG(view: DataView): boolean; |
| 200 | + |
| 201 | + static isJPEG(view: DataView): boolean; |
| 202 | + |
| 203 | + static isTIFF(view: DataView): boolean; |
| 204 | + |
| 205 | + static isGIF(view: DataView): boolean; |
| 206 | +}; |
| 207 | + |
| 208 | +export function decode(data: Uint8Array | Buffer, onlyExtractFirstFrame?: boolean): Promise<GIF | Image>; |
| 209 | + |
| 210 | +type colorFunction = (x: number, y: number) => number; |
| 211 | + |
| 212 | +type PNGMetadata = { |
| 213 | + title?: string, |
| 214 | + author?: string, |
| 215 | + description?: string, |
| 216 | + copyright?: string, |
| 217 | + creationTime?: string | number | Date, |
| 218 | + software?: string, |
| 219 | + disclaimer?: string, |
| 220 | + warning?: string, |
| 221 | + source?: string, |
| 222 | + comment?: string |
| 223 | +}; |
0 commit comments