Struct Levels

Settings for a scalar normalized-channel Levels adjustment.

struct Levels;

All five values must be finite. Required constraints: inputBlack < inputWhite, gamma > 0, and 0 <= outputBlack <= outputWhite <= 1. Inputs are interpreted in the caller-declared numeric channel domain. No ICC conversion, sRGB decoding, alpha association or NoData inference.

.init is detectably invalid because its floating fields are NaN; passing it to tryLevelsOwned returns LevelsError.invalidParameters.

Examples

Levels identity = Levels(0, 1, 1, 0, 1);
assert(identity.gamma == 1);