UNPKG

koishi-plugin-image-tools

Version:
47 lines (46 loc) 3.23 kB
import { MemoryImage } from 'image-in-browser'; import { HTTP } from 'koishi'; import type { Canvas, Image, Skia } from '@ltxhhz/koishi-plugin-skia-canvas'; export declare class OperationError extends Error { readonly i18nParams: any[]; readonly name = "OperationError"; readonly i18nPath: string; constructor(i18nPath: string, i18nParams?: any[]); } export declare function readGif(buf: ArrayBuffer): Promise<MemoryImage>; export declare function readImage(http: HTTP, src: string): Promise<MemoryImage>; export declare function imageSavePng(image: MemoryImage): Promise<Blob>; export declare function imageSaveGif(image: MemoryImage): Promise<Blob>; export declare function imageSave(image: MemoryImage): Promise<Blob>; export declare function canvasSavePng(canvas: Canvas): Promise<Blob>; export declare function canvasSaveGif(canvasList: (readonly [Canvas, number])[]): Promise<Blob>; export declare function gifHelper(sv: Skia, image: MemoryImage, process: (img: Image) => Promise<Canvas>): Promise<Blob>; export declare function ensureAnimation(image: MemoryImage): void; export declare function ensureMinImageNum(images: MemoryImage[], num?: number): void; export declare function warnAnimation(images: MemoryImage[], optForce?: boolean): void; export declare function ensureBigger(value: number | undefined, min: number): void; export declare function matchRegExps<T, R extends RegExp = RegExp, F extends (r: RegExpExecArray) => T = (r: RegExpExecArray) => T>(str: string, regexps: (readonly [R, F])[], errorThrower?: () => never): T; export declare const getSizeMatchReg: (width: number, height: number) => readonly [RegExp, (res: RegExpExecArray) => [number, number]]; export declare const getPercentMatchReg: (width: number, height: number) => readonly [RegExp, (res: RegExpExecArray) => [number, number]]; export declare const getRatioMatchReg: (width: number, height: number) => readonly [RegExp, (res: RegExpExecArray) => [number, number]]; export type RGBColorTuple = [number, number, number]; export type RGBAColorTuple = [number, number, number, number]; export type ColorTuple = RGBColorTuple | RGBAColorTuple; export declare function RGBA2RGB(rgba: RGBAColorTuple): RGBColorTuple; export declare function RGB2RGBA(rgb: RGBColorTuple): RGBAColorTuple; export declare function colorTupleToWebColor(color: ColorTuple): string; export declare function parseColor(color: string): RGBAColorTuple; export declare function parseAngle(angle: string): number; export interface CheckSizeOptions { minWidth?: number; minHeight?: number; maxWidth?: number; maxHeight?: number; defaultWidth?: number; defaultHeight?: number; } export declare function checkSize(width: number | undefined, height: number | undefined, options?: CheckSizeOptions): [number, number]; export declare function calcGradientLinePos(angleDeg: number, width: number, height: number): [number, number, number, number]; export declare function colorMaskPilUtils(image: MemoryImage, color: [number, number, number]): MemoryImage; export type GridBox = [number, number, number, number]; export declare function cropToGrids(image: MemoryImage, boxes: GridBox[] | ((size: number) => GridBox[])): Promise<Blob[]>;