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
TypeScript
/** @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.
*/
[ ](): Iterator<Pixel>;
}