UNPKG

@thi.ng/pixel

Version:

Typedarray integer & float pixel buffers w/ customizable formats, blitting, drawing, convolution

89 lines 4.24 kB
import type { Fn2, FnN2, ICopy, IEmpty, NumericArray, Range0_3 } from "@thi.ng/api"; import type { BlendFnFloat, BlitCanvasOpts, BlitOpts, Filter, FloatFormat, FloatFormatSpec, FloatSampler, IBlend, IBlit, IInvert, IPixelBuffer, IResizable, IRotate, ISetImageData, IToImageData, IntFormat } from "./api.js"; import { IntBuffer } from "./int.js"; /** * Syntax sugar for {@link FloatBuffer} ctor. * * @param w - * @param h - * @param fmt - * @param data - */ export declare function floatBuffer(w: number, h: number, fmt?: FloatFormat | FloatFormatSpec, data?: Float32Array): FloatBuffer; export declare function floatBuffer(src: IntBuffer, fmt?: FloatFormat | FloatFormatSpec): FloatBuffer; /** * Creates a new `FloatBuffer` from given {@link IntBuffer} and using * provided {@link FloatFormat}. * * @remarks * See {@link FloatBuffer.as} for reverse operation. * * @param src - * @param fmt - * * @deprecated use `IntBuffer.as(float_format)` instead */ export declare const floatBufferFromInt: (src: IntBuffer, fmt?: FloatFormat | FloatFormatSpec) => FloatBuffer; export declare const floatBufferFromImage: (img: HTMLImageElement, fmt?: FloatFormat, width?: number, height?: number | undefined) => FloatBuffer; export declare const floatBufferFromCanvas: (canvas: HTMLCanvasElement | OffscreenCanvas, fmt?: FloatFormat) => FloatBuffer; export declare class FloatBuffer implements IPixelBuffer<Float32Array, NumericArray>, IBlend<FloatBuffer, BlendFnFloat>, IBlit<FloatBuffer>, ICopy<FloatBuffer>, IEmpty<FloatBuffer>, IInvert<FloatBuffer>, IResizable<FloatBuffer, FloatSampler>, IRotate<FloatBuffer>, ISetImageData, IToImageData { readonly size: [number, number]; readonly stride: [number, number]; format: FloatFormat; data: Float32Array; protected __empty: NumericArray; constructor(w: number, h: number, fmt?: FloatFormat | FloatFormatSpec, data?: Float32Array); /** @deprecated use `.data` instead */ get pixels(): Float32Array<ArrayBufferLike>; get width(): number; get height(): number; get offset(): number; get dim(): 2; [Symbol.iterator](): Generator<Float32Array<ArrayBufferLike>, void, unknown>; as(fmt: IntFormat): IntBuffer; as(fmt: FloatFormat): FloatBuffer; copy(): FloatBuffer; empty(): FloatBuffer; order(): number[]; includes(x: number, y: number): boolean; indexAt(x: number, y: number): number; indexAtUnsafe(x: number, y: number): number; getAt(x: number, y: number): NumericArray; getAtUnsafe(x: number, y: number): Float32Array<ArrayBufferLike>; setAt(x: number, y: number, col: NumericArray): boolean; setAtUnsafe(x: number, y: number, col: NumericArray): boolean; getChannelAt(x: number, y: number, id: number): number | undefined; setChannelAt(x: number, y: number, id: number, col: number): this; getChannel(id: number): FloatBuffer; setChannel(id: number, src: FloatBuffer | number): this; blend(op: BlendFnFloat, dest: FloatBuffer, opts?: Partial<BlitOpts>): FloatBuffer; blit(dest: FloatBuffer, opts?: Partial<BlitOpts>): FloatBuffer; blitCanvas(canvas: HTMLCanvasElement | CanvasRenderingContext2D | OffscreenCanvas | OffscreenCanvasRenderingContext2D, opts?: Partial<BlitCanvasOpts>): void; setImageData(idata: ImageData): this; toImageData(idata?: ImageData): ImageData; getRegion(x: number, y: number, width: number, height: number): FloatBuffer | undefined; forEach(f: Fn2<NumericArray, number, NumericArray>): this; fill(x: NumericArray): void; premultiply(): this; postmultiply(): this; isPremultiplied(): boolean; clamp(): this; clampChannel(id: number): void; flipX(): this; /** * Flips image vertically. */ flipY(): this; rotateByID(id: Range0_3): this; rotateCW(): this; rotateCCW(): this; rotate180(): this; invert(): this; scale(scale: number, sampler?: FloatSampler | Filter): FloatBuffer; resize(w: number, h: number, sampler?: FloatSampler | Filter): FloatBuffer; upsize(): FloatBuffer; protected _rotate(idxFn: FnN2): void; protected ensureFormat(dest: FloatBuffer): void; protected ensureRGBA(): void; } //# sourceMappingURL=float.d.ts.map