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)
259 lines (258 loc) • 8.12 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 { MemoryImageDataUint16 } from './image-data-uint16.js';
import { Palette } from './palette.js';
import { Pixel } from './pixel.js';
/**
* Represents a pixel with 16-bit unsigned integer channels.
*/
export declare class PixelUint16 implements Pixel, Iterable<Pixel>, Iterator<Pixel> {
private _index;
private readonly _image;
/**
* Gets the image data associated with this pixel.
*/
get image(): MemoryImageDataUint16;
private _x;
/**
* Gets the x-coordinate of the pixel.
*/
get x(): number;
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 or sets the index of the pixel.
*/
get index(): number;
set index(i: number);
/**
* Gets the raw data of the image.
*/
get data(): Uint16Array;
/**
* Checks if the pixel is within the valid range of the image.
*/
get isValid(): boolean;
/**
* Gets the width of the image.
*/
get width(): number;
/**
* Gets the height of the image.
*/
get height(): number;
/**
* Gets the number of channels in the pixel.
*/
get length(): number;
/**
* Gets the number of channels in the image.
*/
get numChannels(): number;
/**
* Gets the maximum value a channel can have.
*/
get maxChannelValue(): number;
/**
* Gets the maximum value an index can have.
*/
get maxIndexValue(): number;
/**
* Gets the format of the pixel.
*/
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, if any.
*/
get palette(): Palette | undefined;
/**
* Gets or sets the red channel value of the pixel.
*/
get r(): number;
set r(r: number);
/**
* Gets or sets the green channel value of the pixel.
*/
get g(): number;
set g(g: number);
/**
* Gets or sets the blue channel value of the pixel.
*/
get b(): number;
set b(b: number);
/**
* Gets or sets the alpha channel value of the pixel.
*/
get a(): number;
set a(a: number);
/**
* Gets or sets the normalized red channel value of the pixel.
*/
get rNormalized(): number;
set rNormalized(v: number);
/**
* Gets or sets the normalized green channel value of the pixel.
*/
get gNormalized(): number;
set gNormalized(v: number);
/**
* Gets or sets the normalized blue channel value of the pixel.
*/
get bNormalized(): number;
set bNormalized(v: number);
/**
* Gets or sets the normalized alpha channel value of the pixel.
*/
get aNormalized(): number;
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 PixelUint16 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 {MemoryImageDataUint16} image - The image data associated with the pixel.
*/
constructor(x: number, y: number, index: number, image: MemoryImageDataUint16);
/**
* Creates a new PixelUint16 instance from image data.
* @param {MemoryImageDataUint16} image - The image data.
* @returns {PixelUint16} - A new PixelUint16 instance.
*/
static imageData(image: MemoryImageDataUint16): PixelUint16;
/**
* Creates a new PixelUint16 instance from an image.
* @param {MemoryImage} image - The image.
* @returns {PixelUint16} - A new PixelUint16 instance.
*/
static image(image: MemoryImage): PixelUint16;
/**
* Creates a new PixelUint16 instance from another PixelUint16 instance.
* @param {PixelUint16} other - The other PixelUint16 instance.
* @returns {PixelUint16} - A new PixelUint16 instance.
*/
static from(other: PixelUint16): PixelUint16;
/**
* 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 index or type.
* @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 type.
* @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 index.
* @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;
/**
* Checks if the pixel is equal to another pixel or array of numbers.
* @param {Pixel | number[]} other - The other pixel or array of numbers.
* @returns {boolean} - True if the pixels are equal, false otherwise.
*/
equals(other: Pixel | number[]): boolean;
/**
* Converts the pixel to an array of channel values.
* @returns {number[]} - An array of channel values.
*/
toArray(): number[];
/**
* Clones the pixel.
* @returns {PixelUint16} - A new PixelUint16 instance.
*/
clone(): PixelUint16;
/**
* Converts the pixel to a color.
* @param {ColorConvertOptions} opt - The color conversion options.
* @param {string} opt.format - The format of the color (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 (optional).
* @returns {Color} - The converted color.
*/
convert(opt: ColorConvertOptions): Color;
/**
* Converts the pixel to a string representation.
* @returns {string} - The string representation of the pixel.
*/
toString(): string;
/**
* Returns the iterator for the pixel.
* @returns {Iterator<Pixel>} - The iterator for the pixel.
*/
[Symbol.iterator](): Iterator<Pixel>;
}