UNPKG

hdr-canvas

Version:
58 lines (48 loc) 2.45 kB
import { ColorTypes } from 'colorjs.io'; // See https://github.com/microsoft/TypeScript/blob/main/src/lib/dom.generated.d.ts /// <reference lib="dom" /> type HDRHTMLCanvasOptionsType = "mode"; type HDRHTMLCanvasOptions = { [key in HDRHTMLCanvasOptionsType]?: string }; interface HDRHTMLCanvasElement extends HTMLCanvasElement { configureHighDynamicRange(options: HDRHTMLCanvasOptions): void; _getContext(contextId: string, options?: object): RenderingContext | null; } interface HDRImageData { readonly colorSpace: PredefinedColorSpace; readonly data: Uint8ClampedArray | Uint16Array; readonly height: number; readonly width: number; } // See https://github.com/w3c/ColorWeb-CG/blob/main/hdr_html_canvas_element.md // "rec2100-display-linear" is left out beacause of mapping issues type HDRPredefinedColorSpace = "display-p3" | "srgb" | "rec2100-hlg" | "rec2100-pq"; type Uint16ImagePixelCallback = (red: number, green: number, blue: number, alpha: number) => Uint16Array; declare class Uint16Image { height: number; width: number; data: Uint16Array; static DEFAULT_COLORSPACE: HDRPredefinedColorSpace; static SDR_MULTIPLIER: number; static COLORSPACES: Record<HDRPredefinedColorSpace, ColorTypes>; colorSpace: HDRPredefinedColorSpace; constructor(width: number, height: number, colorspace?: string); fill(color: number[]): Uint16Image | undefined; getPixel(w: number, h: number): Uint16Array; setPixel(w: number, h: number, px: number[]): void; static scaleUint8ToUint16(val: number): number; getImageData(): ImageData | null; static convertPixelToRec2100_hlg(pixel: Uint8ClampedArray): Uint16Array; static convertArrayToRec2100_hlg(data: Uint8ClampedArray): Uint16Array; pixelCallback(fn: Uint16ImagePixelCallback): void; static loadSDRImageData(url: URL): Promise<HDRImageData | undefined>; static fromImageData(imageData: HDRImageData): Uint16Image; static fromURL(url: URL): Promise<Uint16Image | undefined>; setImageData(imageData: HDRImageData): void; clone(): Uint16Image; } declare function checkHDR(): boolean; declare function checkHDRCanvas(): boolean; declare function initHDRCanvas(canvas: HDRHTMLCanvasElement): RenderingContext | null; declare function defaultGetContextHDR(): void; declare function resetGetContext(): void; export { Uint16Image, checkHDR, checkHDRCanvas, defaultGetContextHDR, initHDRCanvas, resetGetContext };