UNPKG

image-in-browser

Version:

Package for encoding / decoding images, transforming images, applying filters, drawing primitives on images on the client side (no need for server Node.js)

293 lines (292 loc) 8.46 kB
/** @format */ import { Channel } from '../color/channel.js'; import { Color, ColorConvertOptions } from '../color/color.js'; import { Format } from '../color/format.js'; import { MemoryImage } from './image.js'; import { MemoryImageDataFloat16 } from './image-data-float16.js'; import { Palette } from './palette.js'; import { Pixel } from './pixel.js'; /** * Represents a pixel with float16 data. */ export declare class PixelFloat16 implements Pixel, Iterable<Pixel>, Iterator<Pixel> { /** * The index of the pixel. */ private _index; /** * The image data associated with the pixel. */ private readonly _image; /** * Gets the image data associated with the pixel. */ get image(): MemoryImageDataFloat16; /** * The x-coordinate of the pixel. */ private _x; /** * Gets the x-coordinate of the pixel. */ get x(): number; /** * The y-coordinate of the pixel. */ private _y; /** * Gets the y-coordinate of the pixel. */ get y(): number; /** * Gets the normalized x-coordinate of the pixel. */ get xNormalized(): number; /** * Gets the normalized y-coordinate of the pixel. */ get yNormalized(): number; /** * Gets the index of the pixel. */ get index(): number; /** * Sets the index of the pixel. */ set index(i: number); /** * Gets the data of the image. */ get data(): Uint16Array; /** * Checks if the pixel is valid. */ get isValid(): boolean; /** * Gets the width of the image. */ get width(): number; /** * Gets the height of the image. */ get height(): number; /** * Gets the length of the image data. */ get length(): number; /** * Gets the number of channels in the image. */ get numChannels(): number; /** * Gets the maximum channel value. */ get maxChannelValue(): number; /** * Gets the maximum index value. */ get maxIndexValue(): number; /** * Gets the format of the image. */ get format(): Format; /** * Checks if the image is in LDR format. */ get isLdrFormat(): boolean; /** * Checks if the image is in HDR format. */ get isHdrFormat(): boolean; /** * Checks if the image has a palette. */ get hasPalette(): boolean; /** * Gets the palette of the image. */ get palette(): Palette | undefined; /** * Gets the red channel value. */ get r(): number; /** * Sets the red channel value. */ set r(r: number); /** * Gets the green channel value. */ get g(): number; /** * Sets the green channel value. */ set g(g: number); /** * Gets the blue channel value. */ get b(): number; /** * Sets the blue channel value. */ set b(b: number); /** * Gets the alpha channel value. */ get a(): number; /** * Sets the alpha channel value. */ set a(a: number); /** * Gets the normalized red channel value. */ get rNormalized(): number; /** * Sets the normalized red channel value. */ set rNormalized(v: number); /** * Gets the normalized green channel value. */ get gNormalized(): number; /** * Sets the normalized green channel value. */ set gNormalized(v: number); /** * Gets the normalized blue channel value. */ get bNormalized(): number; /** * Sets the normalized blue channel value. */ set bNormalized(v: number); /** * Gets the normalized alpha channel value. */ get aNormalized(): number; /** * Sets the normalized alpha channel value. */ set aNormalized(v: number); /** * Gets the luminance of the pixel. */ get luminance(): number; /** * Gets the normalized luminance of the pixel. */ get luminanceNormalized(): number; /** * Constructs a new PixelFloat16 instance. * @param {number} x - The x-coordinate of the pixel. * @param {number} y - The y-coordinate of the pixel. * @param {number} index - The index of the pixel. * @param {MemoryImageDataFloat16} image - The image data associated with the pixel. */ constructor(x: number, y: number, index: number, image: MemoryImageDataFloat16); /** * Creates a new PixelFloat16 instance from image data. * @param {MemoryImageDataFloat16} image - The image data. * @returns {PixelFloat16} A new PixelFloat16 instance. */ static imageData(image: MemoryImageDataFloat16): PixelFloat16; /** * Creates a new PixelFloat16 instance from an image. * @param {MemoryImage} image - The image. * @returns {PixelFloat16} A new PixelFloat16 instance. */ static image(image: MemoryImage): PixelFloat16; /** * Creates a new PixelFloat16 instance from another PixelFloat16 instance. * @param {PixelFloat16} other - The other PixelFloat16 instance. * @returns {PixelFloat16} A new PixelFloat16 instance. */ static from(other: PixelFloat16): PixelFloat16; /** * Advances the iterator to the next pixel. * @returns {IteratorResult<Pixel>} The result of the iteration. */ next(): IteratorResult<Pixel>; /** * Sets the position of the pixel. * @param {number} x - The x-coordinate. * @param {number} y - The y-coordinate. */ setPosition(x: number, y: number): void; /** * Sets the normalized position of the pixel. * @param {number} x - The normalized x-coordinate. * @param {number} y - The normalized y-coordinate. */ setPositionNormalized(x: number, y: number): void; /** * Gets the value of a specific channel. * @param {number | Channel} channel - The channel number or Channel enum. * @returns {number} The value of the specified channel. */ getChannel(channel: number | Channel): number; /** * Gets the normalized value of a specific channel. * @param {Channel} channel - The Channel enum. * @returns {number} The normalized value of the specified channel. */ getChannelNormalized(channel: Channel): number; /** * Sets the value of a specific channel. * @param {number} channel - The channel number. * @param {number} value - The value to set. */ setChannel(channel: number, value: number): void; /** * Sets the color of the pixel. * @param {Color} color - The color to set. */ set(color: Color): void; /** * Sets the RGB values of the pixel. * @param {number} r - The red value. * @param {number} g - The green value. * @param {number} b - The blue value. */ setRgb(r: number, g: number, b: number): void; /** * Sets the RGBA values of the pixel. * @param {number} r - The red value. * @param {number} g - The green value. * @param {number} b - The blue value. * @param {number} a - The alpha value. */ setRgba(r: number, g: number, b: number, a: number): void; /** * Converts the pixel data to an array. * @returns {number[]} An array of pixel data. */ toArray(): number[]; /** * Checks if the pixel is equal to another pixel or array. * @param {Pixel | number[]} other - The other pixel or array. * @returns {boolean} True if the pixel is equal to the other pixel or array, false otherwise. */ equals(other: Pixel | number[]): boolean; /** * Clones the pixel. * @returns {PixelFloat16} A new PixelFloat16 instance. */ clone(): PixelFloat16; /** * Converts the pixel to a color. * @param {ColorConvertOptions} opt - The color conversion options. * @param {string} opt.format - The format to convert the color to (e.g., 'rgb', 'hex'). * @param {number} opt.numChannels - The number of color channels (e.g., 3 for RGB, 4 for RGBA). * @param {number} opt.alpha - The alpha value for the color (e.g., 0.5 for 50% transparency). * @returns {Color} The converted color. */ convert(opt: ColorConvertOptions): Color; /** * Returns an iterator for the pixel. * @returns {Iterator<Pixel>} An iterator for the pixel. */ [Symbol.iterator](): Iterator<Pixel>; }