import { AbstractImageAdapter } from "./AbstractImageAdapter"; import type { ImageAdapter } from "./ImageAdapter"; import type { Color } from "../types"; /** * Canvas element or offscreen canvas. */ export type BrowserCanvas = HTMLCanvasElement | OffscreenCanvas; /** * Browser canvas rendering context 2d. */ export type BrowserCanvasContext2d = CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D; /** * ImageAdapter implementation for distortion using HTML5 Canvas objects. */ export declare class Canvas extends AbstractImageAdapter implements ImageAdapter { /** * Browser canvas (HTMLCanvasElement or OffscreenCanvas) with image resource. */ protected canvas: BrowserCanvas; /** * ImageData object to work with. */ protected imageData: ImageData; /** * ImageData.data array stored for faster access. */ protected data: Uint8ClampedArray; /** * Canvas constructor. * * @param canvas HTML5 Canvas or offscreen canvas with image data. */ constructor(canvas: BrowserCanvas); /** * Creates new instance using CanvasImageSource. * * @param image */ static createFromImage(image: CanvasImageSource & { width: number; height: number; }): Canvas; /** * Asynchronously creates Canvas instance from image url. * * @param url */ static createFromUrl(url: string): Promise; /** * Asynchronously creates Canvas instance from Blob or File. * * @param blob */ static createFromBlob(blob: Blob): Promise; /** * @inheritDoc */ getPixelColor(x: number, y: number): Color; /** * @inheritDoc */ setPixelColor(x: number, y: number, color: Color): void; /** * @inheritDoc */ getAverageColor(): Color; /** * @inheritDoc */ protected resize(width: number, height: number): Canvas; /** * @inheritDoc */ getResource(): BrowserCanvas; /** * @inheritDoc */ protected prepareBlank(width: number, height: number): Canvas; /** * @inheritDoc */ commit(): void; /** * Returns true if underlying canvas resource is OffscreenCanvas */ isOffscreen(): boolean; }