@pbroom/color-kit/interopWriters
toSrgbArray
Write a color as gamma-encoded sRGB [r, g, b], 0–1 in gamut (not 0–255). Use this for sRGB-encoded render targets and for three.js Color.setRGB(r, g, b, SRGBColorSpace).
import { toSrgbArray } from '@pbroom/color-kit/interop';writers.ts:168function toSrgbArray(
color: Color,
out?: undefined,
offset?: number,
options?: ArrayWriteOptions,
): ColorTuple;
function toSrgbArray<T extends WritableArrayLike>(
color: Color,
out: T,
offset?: number,
options?: ArrayWriteOptions,
): T;
function toSrgbArray<T extends WritableArrayLike>(
color: Color,
out: T | undefined,
offset?: number,
options?: ArrayWriteOptions,
): ColorTuple | T;Values are unclamped floats by default, so out-of-gamut colors produce channels outside 0–1 (correct for HDR/linear pipelines, and what three.js does). Pass { clamp: true } to clip, or gamut-map first to reduce chroma instead: toSrgbArray(toSrgbGamut(color), out) (or toP3Gamut).
Overload 1 of 3
Parameters
- out?
undefined - Destination (
number[],Float32Array, ...). When omitted a newColorTupleis returned. - offset?
number - Index in
outof the first component to write. - options?
ArrayWriteOptions - Out-of-gamut handling (
clamp).
Returns
ColorTupleout, or a new tuple when out is omitted.
Overload 2 of 3
Parameters
- out
T - Destination (
number[],Float32Array, ...). When omitted a newColorTupleis returned. - offset?
number - Index in
outof the first component to write. - options?
ArrayWriteOptions - Out-of-gamut handling (
clamp).
Returns
Tout, or a new tuple when out is omitted.
Overload 3 of 3
Parameters
- out
T | undefined - Destination (
number[],Float32Array, ...). When omitted a newColorTupleis returned. - offset?
number - Index in
outof the first component to write. - options?
ArrayWriteOptions - Out-of-gamut handling (
clamp).
Returns
ColorTuple | Tout, or a new tuple when out is omitted.
Example
toSrgbArray(parse('#ff8800')); // => [c0, c1, c2]
// Write into an existing buffer, starting at element 6.
toSrgbArray(color, buffer, 6);Also exported from
@pbroom/color-kitthe same declaration, re-exported