UNPKG

@nmmty/lazycanvas

Version:

A simple way to interact with @napi-rs/canvas in an advanced way!

75 lines (74 loc) 2.75 kB
import type { AnyCentring, AnyLayer, AnyTextAlign, ColorType, PointNumber, ScaleType, Transform } from "../types"; import { LayerType } from "../types"; import { Canvas, SKRSContext2D, SvgCanvas } from "@napi-rs/canvas"; import { LayersManager } from "../structures/managers/LayersManager"; import { Group } from "../structures/components"; export declare function generateID(type: string): string; export declare function isColor(v: ColorType): "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function"; export declare function parseToNormal(v: ScaleType, ctx: SKRSContext2D, canvas: Canvas | SvgCanvas, layer?: { width: number; height: number; }, options?: { vertical?: boolean; layer?: boolean; }, manager?: LayersManager): number; export declare function parser(ctx: SKRSContext2D, canvas: Canvas | SvgCanvas, manager?: LayersManager): { parse(v: ScaleType, layer?: { width: number; height: number; }, options?: { vertical?: boolean; layer?: boolean; }): number; parseBatch(values: Record<string, { v: ScaleType; layer?: { width: number; height: number; }; options?: { vertical?: boolean; layer?: boolean; }; }>): Record<string, number>; }; export declare function drawShadow(ctx: SKRSContext2D, shadow: any): void; export declare function opacity(ctx: SKRSContext2D, opacity: number): void; export declare function filters(ctx: SKRSContext2D, filters: string): void; export declare function parseFillStyle(ctx: SKRSContext2D, color: ColorType): string | CanvasGradient | Promise<CanvasPattern>; export declare function transform(ctx: SKRSContext2D, transform: Transform, layer?: { width: number; height: number; x: number; y: number; type: LayerType; }, extra?: { text: string; textAlign: AnyTextAlign; fontSize: number; multiline: boolean; }): void; export declare function generateRandomName(): string; export declare function isImageUrlValid(src: string): boolean; export declare function centring(centring: AnyCentring, type: LayerType, width: number, height: number, x: number, y: number): { x: number; y: number; }; export declare function getBoundingBoxBezier(points: PointNumber[], steps?: number): { min: { x: number; y: number; }; max: { x: number; y: number; }; center: { x: number; y: number; }; width: number; height: number; }; export declare function resize(value: ScaleType, ratio: number): number | string; export declare function resizeLayers(layers: Array<AnyLayer | Group>, ratio: number): (AnyLayer | Group)[];