# colour.utilities.from_range_int#

colour.utilities.from_range_int(a: ArrayLike, bit_depth: ArrayLike = 8, dtype: Type[DTypeFloat] | None = None) ndarray[Any, dtype[_ScalarType_co]][source]#

Scale given array $$a$$ from int range. The behaviour is as follows:

• If Colour domain-range scale is ‘Reference’, the definition is entirely by-passed.

• If Colour domain-range scale is ‘1’, array $$a$$ is converted to np.ndarray and divided by $$2^{bit\_depth} - 1$$.

• If Colour domain-range scale is ‘100’ (currently unsupported private value only used for unit tests), array $$a$$ is converted to np.ndarray and divided by $$2^{bit\_depth} - 1$$.

Parameters:
• a (ArrayLike) – Array $$a$$ to scale from int range.

• bit_depth (ArrayLike) – Bit-depth, usually int but can be a numpy.ndarray if some axis need different scaling to be brought from int range.

• dtype (Type[DTypeFloat] | None) – Data type used for the conversion to np.ndarray.

Returns:

Array $$a$$ scaled from int range.

Return type:

numpy.ndarray

Warning

The scale conversion of variable $$a$$ happens in-place, i.e. $$a$$ will be mutated!

Notes

• To avoid precision issues and rounding, the scaling is performed on float numbers.

Examples

With Colour domain-range scale set to ‘Reference’:

>>> with domain_range_scale("Reference"):
...     from_range_int(1)
...
array(1.0)


With Colour domain-range scale set to ‘1’:

>>> with domain_range_scale("1"):
...     from_range_int(1)
...
array(0.0039215...)


With Colour domain-range scale set to ‘100’ (unsupported):

>>> with domain_range_scale("100"):
...     from_range_int(1)
...
array(0.3921568...)