function integerToRGB(
valueInt,
{ strategy = STRATEGIES.INTERLEAVE, customChannelOrder = [0, 1, 2] } = {}
) {
const [R, G, B] = customChannelOrder;
let triple = undefined;
if (strategy === STRATEGIES.SPLIT8) {
triple = split24bitsTo3at8bits(valueInt);
} else if (strategy === STRATEGIES.SPLIT_EQUAL) {
triple = splitEqual(valueInt);
} else if (strategy === STRATEGIES.INTERLEAVE) {
triple = bitwiseInterleave(valueInt);
} else if (strategy === STRATEGIES.EXPERIMENTAL) {
triple = experimental(valueInt);
}
if (OFFSET_MODES[channelBitOffsetMode] !== OFFSET_MODES.NONE) {
return new Uint8ClampedArray([
triple[R] << channelBitOffset[R],
triple[G] << channelBitOffset[G],
triple[B] << channelBitOffset[B]
]);
} else {
return new Uint8ClampedArray([triple[R], triple[G], triple[B]]);
}
}