koishi-plugin-image-tools
Version:
Simple image operating plugin
47 lines (46 loc) • 3.23 kB
TypeScript
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[]>;