File

src/layer/LayerUtils.ts

Index

Methods

Constructor

Public constructor(ctx: SKRSContext2D)
Parameters :
Name Type Optional
ctx SKRSContext2D No

Methods

Public createConicGradient
createConicGradient(startAngle: number, x: number, y: number)
Parameters :
Name Type Optional
startAngle number No
x number No
y number No
Returns : any
Public createLinearGradient
createLinearGradient(x0: number, x1: number, y0: number, y1: number)
Parameters :
Name Type Optional
x0 number No
x1 number No
y0 number No
y1 number No
Returns : any
Public createPattern
createPattern(image: Image | ImageData, repeat: "repeat" | "repeat-x" | "repeat-y" | "no-repeat" | null)
Parameters :
Name Type Optional
image Image | ImageData No
repeat "repeat" | "repeat-x" | "repeat-y" | "no-repeat" | null No
Returns : any
Public createRadialGradient
createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number)
Parameters :
Name Type Optional
x0 number No
y0 number No
r0 number No
x1 number No
y1 number No
r1 number No
Returns : any
Public getCenterPoint
getCenterPoint(divider: number)
Parameters :
Name Type Optional Default value
divider number No 2
Returns : { x: number; y: number; }
Public getImageData
getImageData(sx: number, sy: number, sw, sh)
Parameters :
Name Type Optional Default value
sx number No 0
sy number No 0
sw No this.#ctx.canvas.width
sh No this.#ctx.canvas.height
Returns : any
Public getLayerTransformation
getLayerTransformation()
Returns : any
Public measureText
measureText(text: string)
Parameters :
Name Type Optional
text string No
Returns : any
Public putImageData
putImageData(data, dx: number, dy: number)
Parameters :
Name Type Optional
data No
dx number No
dy number No
Returns : any
import { ColorSpace, Image, ImageData, SKRSContext2D } from "@napi-rs/canvas";

export class LayerUtils {
    #ctx: SKRSContext2D;

    public constructor(ctx: SKRSContext2D) {
        this.#ctx = ctx;
    }

    public measureText(text: string) {
        return this.#ctx.measureText(text);
    }

    public getLayerTransformation() {
        return this.#ctx.getTransform();
    }

    public createLinearGradient(x0: number, x1: number, y0: number, y1: number) {
        return this.#ctx.createLinearGradient(x0, x1, y0, y1);
    }

    public createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number) {
        return this.#ctx.createRadialGradient(x0, y0, r0, x1, y1, r1);
    }

    public createConicGradient(startAngle: number, x: number, y: number) {
        return this.#ctx.createConicGradient(startAngle, x, y);
    }

    public createPattern(image: Image | ImageData, repeat: "repeat" | "repeat-x" | "repeat-y" | "no-repeat" | null) {
        return this.#ctx.createPattern(image, repeat);
    }

    public getImageData(sx = 0, sy = 0, sw = this.#ctx.canvas.width, sh = this.#ctx.canvas.height) {
        return this.#ctx.getImageData(sx, sy, sw, sh);
    }

    public putImageData(data: ImageData & { colorSpace: ColorSpace }, dx: number, dy: number) {
        return this.#ctx.putImageData(data, dx, dy);
    }

    public getCenterPoint(divider = 2) {
        if (typeof divider !== "number") throw new TypeError("divider must be a number");

        return {
            x: this.#ctx.canvas.width / divider,
            y: this.#ctx.canvas.height / divider
        };
    }
}

results matching ""

    No results matching ""