Transforms¶
See also: Grading Transforms
Transform¶
-
class
PyOpenColorIO.Transform¶ Base class for all the transform classes.
-
Transform(*args, **kwargs)¶ Initialize self. See help(type(self)) for accurate signature.
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::Transform¶ Base class for all the transform classes.
Subclassed by AllocationTransform, BuiltinTransform, CDLTransform, ColorSpaceTransform, DisplayViewTransform, ExponentTransform, ExponentWithLinearTransform, ExposureContrastTransform, FileTransform, FixedFunctionTransform, GradingPrimaryTransform, GradingRGBCurveTransform, GradingToneTransform, GroupTransform, LogAffineTransform, LogCameraTransform, LogTransform, LookTransform, Lut1DTransform, Lut3DTransform, MatrixTransform, RangeTransform
Public Functions
-
TransformRcPtr
createEditableCopy() const = 0¶
-
TransformDirection
getDirection() const noexcept = 0¶
-
void
setDirection(TransformDirection dir) noexcept = 0¶ Note that this only affects the evaluation and not the values stored in the object.
-
TransformType
getTransformType() const noexcept = 0¶
-
void
validate() const¶ Will throw if data is not valid.
-
~Transform() = default¶ Do not use (needed only for pybind11).
-
TransformRcPtr
AllocationTransform¶
-
class
PyOpenColorIO.AllocationTransform¶ Forward direction wraps the ‘expanded’ range into the specified, often compressed, range.
-
AllocationTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.AllocationTransform) -> None
__init__(self: PyOpenColorIO.AllocationTransform, allocation: PyOpenColorIO.Allocation = <Allocation.ALLOCATION_UNIFORM: 1>, vars: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
getAllocation() → PyOpenColorIO.Allocation¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
getVars() → List[float]¶
-
setAllocation(allocation: PyOpenColorIO.Allocation) → None¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setVars(vars: List[float]) → None¶
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::AllocationTransform: public Transform¶ Forward direction wraps the ‘expanded’ range into the specified, often compressed, range.
Public Functions
-
TransformRcPtr
createEditableCopy() const override¶
-
TransformDirection
getDirection() const noexcept override¶
-
void
setDirection(TransformDirection dir) noexcept override¶ Note that this only affects the evaluation and not the values stored in the object.
-
TransformType
getTransformType() const noexcept override¶
-
void
validate() const override¶ Will throw if data is not valid.
-
Allocation
getAllocation() const¶
-
void
setAllocation(Allocation allocation)¶
-
int
getNumVars() const¶
-
void
getVars(float *vars) const¶
-
void
setVars(int numvars, const float *vars)¶
-
AllocationTransform &
operator=(const AllocationTransform&) = delete¶
-
~AllocationTransform()¶ Do not use (needed only for pybind11).
Public Static Functions
-
AllocationTransformRcPtr
Create()¶
-
TransformRcPtr
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const AllocationTransform&)¶
-
typedef std::shared_ptr<const AllocationTransform>
OpenColorIO_v2_0::ConstAllocationTransformRcPtr¶
-
typedef std::shared_ptr<AllocationTransform>
OpenColorIO_v2_0::AllocationTransformRcPtr¶
BuiltinTransform¶
-
class
PyOpenColorIO.BuiltinTransform¶ A built-in transform is similar to a FileTransform, but without the file. OCIO knows how to build a set of commonly used transforms on-demand, thus avoiding the need for external files and simplifying config authoring.
-
BuiltinTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.BuiltinTransform) -> None
__init__(self: PyOpenColorIO.BuiltinTransform, style: str = ‘IDENTITY’, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
getDescription() → str¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getStyle() → str¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setStyle(style: str) → None¶ Select an existing built-in transform style from the list accessible through
:ref:`BuiltinTransformRegistry`. The style is the ID string that identifies which transform to apply.
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::BuiltinTransform: public Transform¶ A built-in transform is similar to a FileTransform, but without the file. OCIO knows how to build a set of commonly used transforms on-demand, thus avoiding the need for external files and simplifying config authoring.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
const char *
getStyle() const noexcept = 0¶
-
void
setStyle(const char *style) = 0¶ Select an existing built-in transform style from the list accessible through :cpp:class:
BuiltinTransformRegistry. The style is the ID string that identifies which transform to apply.
-
const char *
getDescription() const noexcept = 0¶
-
~BuiltinTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
BuiltinTransformRcPtr
Create()¶
-
TransformType
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const BuiltinTransform&) noexcept¶
-
typedef std::shared_ptr<const BuiltinTransform>
OpenColorIO_v2_0::ConstBuiltinTransformRcPtr¶
-
typedef std::shared_ptr<BuiltinTransform>
OpenColorIO_v2_0::BuiltinTransformRcPtr¶
BuiltinTransformRegistry¶
-
class
PyOpenColorIO.BuiltinTransformRegistry¶ The built-in transform registry contains all the existing built-in transforms which can be used by a configuration (version 2 or higher only).
-
BuiltinTransformRegistry() → None¶ Get the current built-in transform registry.
-
getBuiltins() → PyOpenColorIO.BuiltinTransformRegistry.BuiltinIterator¶
-
-
class
OpenColorIO_v2_0::BuiltinTransformRegistry¶ The built-in transform registry contains all the existing built-in transforms which can be used by a configuration (version 2 or higher only).
Public Functions
-
BuiltinTransformRegistry(const BuiltinTransformRegistry&) = delete¶
-
BuiltinTransformRegistry &
operator=(const BuiltinTransformRegistry&) = delete¶
-
size_t
getNumBuiltins() const noexcept = 0¶ Get the number of built-in transforms available.
-
const char *
getBuiltinStyle(size_t index) const = 0¶ Get the style string for the i-th built-in transform. The style is the ID string that identifies a given transform.
-
const char *
getBuiltinDescription(size_t index) const = 0¶ Get the description string for the i-th built-in transform.
Public Static Functions
-
ConstBuiltinTransformRegistryRcPtr
Get() noexcept¶ Get the current built-in transform registry.
-
-
typedef std::shared_ptr<const BuiltinTransformRegistry>
OpenColorIO_v2_0::ConstBuiltinTransformRegistryRcPtr¶
-
typedef std::shared_ptr<BuiltinTransformRegistry>
OpenColorIO_v2_0::BuiltinTransformRegistryRcPtr¶
CDLTransform¶
-
class
PyOpenColorIO.CDLTransform¶ An implementation of the ASC Color Decision List (CDL), based on the ASC v1.2 specification.
Note
If the config version is 1, negative values are clamped if the power is not 1.0. For config version 2 and higher, the negative handling is controlled by the CDL style.
-
static
CreateFromFile(src: str, id: str) → PyOpenColorIO.CDLTransform¶ Load the CDL from the src .cdl, .cc, or .ccc file.
Note
The cccid can be the ID of a CDL or the index of the CDL (as string). If cccid is NULL or empty the first CDL is returned. The cccid is case-sensitive. The src must be an absolute path reference, no relative directory or envvar resolution is performed. Throws if file does not contain any CDL or if the specified cccid is not found.
-
static
CreateGroupFromFile(src: str) → PyOpenColorIO.GroupTransform¶ Load all of the CDLs in a .cdl or .ccc file into a single GroupTransform.
Note
This may be useful as a quicker way for applications to check the contents of each of the CDLs. The src must be an absolute path reference, no relative directory or envvar resolution is performed.
-
CDLTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.CDLTransform) -> None
__init__(self: PyOpenColorIO.CDLTransform, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
__init__(self: PyOpenColorIO.CDLTransform, slope: List[float[3]] = [1.0, 1.0, 1.0], offset: List[float[3]] = [0.0, 0.0, 0.0], power: List[float[3]] = [1.0, 1.0, 1.0], sat: float = 1.0, id: str = ‘’, description: str = ‘’, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.CDLTransform) → bool¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFirstSOPDescription() → str¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getID() → str¶ The get/setID methods are now deprecated. The preferred way of interacting with the ID is now via the transform’s formatMetadata.
-
getOffset() → List[float[3]]¶
-
getPower() → List[float[3]]¶
-
getSOP() → List[float[9]]¶
-
getSat() → float¶
-
getSatLumaCoefs() → List[float[3]]¶ These are hard-coded, by spec, to r709.
-
getSlope() → List[float[3]]¶
-
getStyle() → PyOpenColorIO.CDLStyle¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setFirstSOPDescription(description: str) → None¶
-
setID(id: str) → None¶
-
setOffset(rgb: List[float[3]]) → None¶
-
setPower(rgb: List[float[3]]) → None¶
-
setSOP(vec9: List[float[9]]) → None¶
-
setSat(sat: float) → None¶
-
setSlope(rgb: List[float[3]]) → None¶
-
setStyle(style: PyOpenColorIO.CDLStyle) → None¶ Use CDL_ASC to clamp values to [0,1] per the ASC spec. Use NO_CLAMP to never clamp values (regardless of whether power is 1.0). The NO_CLAMP option passes negatives through unchanged (like the NEGATIVE_PASS_THRU style of ExponentTransform). The default style is CDL_NO_CLAMP.
-
validate() → None¶ Will throw if data is not valid.
-
static
-
class
OpenColorIO_v2_0::CDLTransform: public Transform¶ An implementation of the ASC Color Decision List (CDL), based on the ASC v1.2 specification.
- Note
If the config version is 1, negative values are clamped if the power is not 1.0. For config version 2 and higher, the negative handling is controlled by the CDL style.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
bool
equals(const CDLTransform &other) const noexcept = 0¶
-
void
setStyle(CDLStyle style) = 0¶ Use CDL_ASC to clamp values to [0,1] per the ASC spec. Use NO_CLAMP to never clamp values (regardless of whether power is 1.0). The NO_CLAMP option passes negatives through unchanged (like the NEGATIVE_PASS_THRU style of ExponentTransform). The default style is CDL_NO_CLAMP.
-
void
getSlope(double *rgb) const = 0¶
-
void
setSlope(const double *rgb) = 0¶
-
void
getOffset(double *rgb) const = 0¶
-
void
setOffset(const double *rgb) = 0¶
-
void
getPower(double *rgb) const = 0¶
-
void
setPower(const double *rgb) = 0¶
-
void
getSOP(double *vec9) const = 0¶
-
void
setSOP(const double *vec9) = 0¶
-
double
getSat() const = 0¶
-
void
setSat(double sat) = 0¶
-
void
getSatLumaCoefs(double *rgb) const = 0¶ These are hard-coded, by spec, to r709.
-
const char *
getID() const = 0¶ The get/setID methods are now deprecated. The preferred way of interacting with the ID is now via the transform’s formatMetadata.
-
void
setID(const char *id) = 0¶
-
const char *
getFirstSOPDescription() const = 0¶
-
void
setFirstSOPDescription(const char *description) = 0¶
-
CDLTransform(const CDLTransform&) = delete¶
-
CDLTransform &
operator=(const CDLTransform&) = delete¶
-
~CDLTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
CDLTransformRcPtr
Create()¶
-
CDLTransformRcPtr
CreateFromFile(const char *src, const char *cccid)¶ Load the CDL from the src .cdl, .cc, or .ccc file.
- Note
The cccid can be the ID of a CDL or the index of the CDL (as string). If cccid is NULL or empty the first CDL is returned. The cccid is case-sensitive. The src must be an absolute path reference, no relative directory or envvar resolution is performed. Throws if file does not contain any CDL or if the specified cccid is not found.
-
GroupTransformRcPtr
CreateGroupFromFile(const char *src)¶ Load all of the CDLs in a .cdl or .ccc file into a single GroupTransform.
- Note
This may be useful as a quicker way for applications to check the contents of each of the CDLs. The src must be an absolute path reference, no relative directory or envvar resolution is performed.
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const CDLTransform&)¶
-
typedef std::shared_ptr<const CDLTransform>
OpenColorIO_v2_0::ConstCDLTransformRcPtr¶
-
typedef std::shared_ptr<CDLTransform>
OpenColorIO_v2_0::CDLTransformRcPtr¶
ColorSpaceTransform¶
-
class
PyOpenColorIO.ColorSpaceTransform¶ -
ColorSpaceTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.ColorSpaceTransform) -> None
__init__(self: PyOpenColorIO.ColorSpaceTransform, src: str = ‘’, dst: str = ‘’, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>, dataBypass: bool = True) -> None
-
str(self)¶ Return str(self).
-
getDataBypass() → bool¶ Data color spaces do not get processed when true (which is the default).
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getDst() → str¶
-
getSrc() → str¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setDataBypass(dataBypass: bool) → None¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setDst(dst: str) → None¶
-
setSrc(src: str) → None¶
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::ColorSpaceTransform: public Transform¶ Public Functions
-
TransformRcPtr
createEditableCopy() const override¶
-
TransformDirection
getDirection() const noexcept override¶
-
void
setDirection(TransformDirection dir) noexcept override¶ Note that this only affects the evaluation and not the values stored in the object.
-
TransformType
getTransformType() const noexcept override¶
-
void
validate() const override¶ Will throw if data is not valid.
-
const char *
getSrc() const¶
-
void
setSrc(const char *src)¶
-
const char *
getDst() const¶
-
void
setDst(const char *dst)¶
-
bool
getDataBypass() const noexcept¶ Data color spaces do not get processed when true (which is the default).
-
void
setDataBypass(bool enabled) noexcept¶
-
ColorSpaceTransform &
operator=(const ColorSpaceTransform&) = delete¶
-
~ColorSpaceTransform()¶ Do not use (needed only for pybind11).
Public Static Functions
-
ColorSpaceTransformRcPtr
Create()¶
-
TransformRcPtr
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const ColorSpaceTransform&)¶
-
typedef std::shared_ptr<const ColorSpaceTransform>
OpenColorIO_v2_0::ConstColorSpaceTransformRcPtr¶
-
typedef std::shared_ptr<ColorSpaceTransform>
OpenColorIO_v2_0::ColorSpaceTransformRcPtr¶
DisplayViewTransform¶
-
class
PyOpenColorIO.DisplayViewTransform¶ -
DisplayViewTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.DisplayViewTransform) -> None
__init__(self: PyOpenColorIO.DisplayViewTransform, src: str = ‘’, display: str = ‘’, view: str = ‘’, looksBypass: bool = False, dataBypass: bool = True, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
getDataBypass() → bool¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getDisplay() → str¶
-
getLooksBypass() → bool¶
-
getSrc() → str¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
getView() → str¶
-
setDataBypass(dataBypass: bool) → None¶ Data color spaces do not get processed when true (which is the default).
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setDisplay(display: str) → None¶ Specify which display to use.
-
setLooksBypass(looksBypass: bool) → None¶ Looks will be bypassed when true (the default is false).
-
setSrc(src: str) → None¶ Specify the incoming color space.
-
setView(view: str) → None¶ Specify which view transform to use.
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::DisplayViewTransform: public Transform¶ Public Functions
-
TransformRcPtr
createEditableCopy() const override¶
-
TransformDirection
getDirection() const noexcept override¶
-
void
setDirection(TransformDirection dir) noexcept override¶ Note that this only affects the evaluation and not the values stored in the object.
-
TransformType
getTransformType() const noexcept override¶
-
void
validate() const override¶ Will throw if data is not valid.
-
const char *
getSrc() const¶
-
void
setSrc(const char *name)¶ Specify the incoming color space.
-
const char *
getDisplay() const¶
-
void
setDisplay(const char *display)¶ Specify which display to use.
-
const char *
getView() const¶
-
void
setView(const char *view)¶ Specify which view transform to use.
-
bool
getLooksBypass() const¶
-
void
setLooksBypass(bool bypass)¶ Looks will be bypassed when true (the default is false).
-
bool
getDataBypass() const noexcept¶
-
void
setDataBypass(bool bypass) noexcept¶ Data color spaces do not get processed when true (which is the default).
-
~DisplayViewTransform()¶ Do not use (needed only for pybind11).
Public Static Functions
-
DisplayViewTransformRcPtr
Create()¶
-
TransformRcPtr
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const DisplayViewTransform&)¶
-
typedef std::shared_ptr<const DisplayViewTransform>
OpenColorIO_v2_0::ConstDisplayViewTransformRcPtr¶
-
typedef std::shared_ptr<DisplayViewTransform>
OpenColorIO_v2_0::DisplayViewTransformRcPtr¶
ExponentTransform¶
-
class
PyOpenColorIO.ExponentTransform¶ Represents exponent transform: pow( clamp(color), value ).
Note
For configs with version == 1: Negative style is ignored and if the exponent is 1.0, this will not clamp. Otherwise, the input color will be clamped between [0.0, inf]. For configs with version > 1: Negative value handling may be specified via setNegativeStyle.
-
ExponentTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.ExponentTransform) -> None
__init__(self: PyOpenColorIO.ExponentTransform, value: List[float[4]] = [1.0, 1.0, 1.0, 1.0], negativeStyle: PyOpenColorIO.NegativeStyle = <NegativeStyle.NEGATIVE_CLAMP: 0>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.ExponentTransform) → bool¶ Checks if this exactly equals other.
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getNegativeStyle() → PyOpenColorIO.NegativeStyle¶ Specifies how negative values are handled. Legal values:
NEGATIVE_CLAMP – Clamp negative values (default).
NEGATIVE_MIRROR – Positive curve is rotated 180 degrees around the origin to handle negatives.
NEGATIVE_PASS_THRU – Negative values are passed through unchanged.
-
getTransformType() → PyOpenColorIO.TransformType¶
-
getValue() → List[float[4]]¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setNegativeStyle(style: PyOpenColorIO.NegativeStyle) → None¶
-
setValue(value: List[float[4]]) → None¶
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::ExponentTransform: public Transform¶ Represents exponent transform: pow( clamp(color), value ).
- Note
For configs with version == 1: Negative style is ignored and if the exponent is 1.0, this will not clamp. Otherwise, the input color will be clamped between [0.0, inf]. For configs with version > 1: Negative value handling may be specified via setNegativeStyle.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const ExponentTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
void
getValue(double (&vec4)[4]) const noexcept = 0¶
-
void
setValue(const double (&vec4)[4]) noexcept = 0¶
-
NegativeStyle
getNegativeStyle() const = 0¶ Specifies how negative values are handled. Legal values:
NEGATIVE_CLAMP Clamp negative values (default).
NEGATIVE_MIRROR Positive curve is rotated 180 degrees around the origin to handle negatives.
NEGATIVE_PASS_THRU Negative values are passed through unchanged.
-
void
setNegativeStyle(NegativeStyle style) = 0¶
-
ExponentTransform(const ExponentTransform&) = delete¶
-
ExponentTransform &
operator=(const ExponentTransform&) = delete¶
-
~ExponentTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
ExponentTransformRcPtr
Create()¶
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const ExponentTransform&)¶
-
typedef std::shared_ptr<const ExponentTransform>
OpenColorIO_v2_0::ConstExponentTransformRcPtr¶
-
typedef std::shared_ptr<ExponentTransform>
OpenColorIO_v2_0::ExponentTransformRcPtr¶
ExponentWithLinearTransform¶
-
class
PyOpenColorIO.ExponentWithLinearTransform¶ Represents power functions with a linear section in the shadows such as sRGB and L*.
The basic formula is:
pow( (x + offset)/(1 + offset), gamma ) with the breakpoint at offset/(gamma - 1).
Negative values are never clamped.
-
ExponentWithLinearTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.ExponentWithLinearTransform) -> None
__init__(self: PyOpenColorIO.ExponentWithLinearTransform, gamma: List[float[4]] = [1.0, 1.0, 1.0, 1.0], offset: List[float[4]] = [0.0, 0.0, 0.0, 0.0], negativeStyle: PyOpenColorIO.NegativeStyle = <NegativeStyle.NEGATIVE_LINEAR: 3>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.ExponentWithLinearTransform) → bool¶ Checks if this exactly equals other.
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getGamma() → List[float[4]]¶
-
getNegativeStyle() → PyOpenColorIO.NegativeStyle¶ Specifies how negative values are handled. Legal values:
NEGATIVE_LINEAR – Linear segment continues into negatives (default).
NEGATIVE_MIRROR – Positive curve is rotated 180 degrees around the origin to handle negatives.
-
getOffset() → List[float[4]]¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setGamma(values: List[float[4]]) → None¶ Set the exponent value for the power function for R, G, B, A.
Note
The gamma values must be in the range of [1, 10]. Set the transform direction to inverse to obtain the effect of values less than 1.
-
setNegativeStyle(style: PyOpenColorIO.NegativeStyle) → None¶
-
setOffset(values: List[float[4]]) → None¶ Set the offset value for the power function for R, G, B, A.
Note
The offset values must be in the range [0, 0.9].
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::ExponentWithLinearTransform: public Transform¶ Represents power functions with a linear section in the shadows such as sRGB and L*.
The basic formula is::
pow( (x + offset)/(1 + offset), gamma ) with the breakpoint at offset/(gamma - 1).
Negative values are never clamped.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const ExponentWithLinearTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
void
getGamma(double (&values)[4]) const noexcept = 0¶
-
void
setGamma(const double (&values)[4]) noexcept = 0¶ Set the exponent value for the power function for R, G, B, A.
- Note
The gamma values must be in the range of [1, 10]. Set the transform direction to inverse to obtain the effect of values less than 1.
-
void
getOffset(double (&values)[4]) const noexcept = 0¶
-
void
setOffset(const double (&values)[4]) noexcept = 0¶ Set the offset value for the power function for R, G, B, A.
- Note
The offset values must be in the range [0, 0.9].
-
NegativeStyle
getNegativeStyle() const = 0¶ Specifies how negative values are handled. Legal values:
NEGATIVE_LINEAR Linear segment continues into negatives (default).
NEGATIVE_MIRROR Positive curve is rotated 180 degrees around the origin to handle negatives.
-
void
setNegativeStyle(NegativeStyle style) = 0¶
-
ExponentWithLinearTransform(const ExponentWithLinearTransform&) = delete¶
-
ExponentWithLinearTransform &
operator=(const ExponentWithLinearTransform&) = delete¶
-
~ExponentWithLinearTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
ExponentWithLinearTransformRcPtr
Create()¶
-
TransformType
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const ExponentWithLinearTransform&)¶
-
typedef std::shared_ptr<const ExponentWithLinearTransform>
OpenColorIO_v2_0::ConstExponentWithLinearTransformRcPtr¶
-
typedef std::shared_ptr<ExponentWithLinearTransform>
OpenColorIO_v2_0::ExponentWithLinearTransformRcPtr¶
ExposureContrastTransform¶
-
class
PyOpenColorIO.ExposureContrastTransform¶ Applies exposure, gamma, and pivoted contrast adjustments. Adjusts the math to be appropriate for linear, logarithmic, or video color spaces.
-
ExposureContrastTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.ExposureContrastTransform) -> None
__init__(self: PyOpenColorIO.ExposureContrastTransform, style: PyOpenColorIO.ExposureContrastStyle = <ExposureContrastStyle.EXPOSURE_CONTRAST_LINEAR: 0>, exposure: float = 0.0, contrast: float = 1.0, gamma: float = 1.0, pivot: float = 0.18, logExposureStep: float = 0.088, logMidGray: float = 0.435, dynamicExposure: bool = False, dynamicContrast: bool = False, dynamicGamma: bool = False, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.ExposureContrastTransform) → bool¶ Checks if this exactly equals other.
-
getContrast() → float¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getExposure() → float¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getGamma() → float¶
-
getLogExposureStep() → float¶
-
getLogMidGray() → float¶
-
getPivot() → float¶
-
getStyle() → PyOpenColorIO.ExposureContrastStyle¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
isContrastDynamic() → bool¶ Contrast can be made dynamic so the value can be changed through the CPU or GPU processor, but if there are several ExposureContrastTransform only one can have a dynamic contrast.
-
isExposureDynamic() → bool¶ Exposure can be made dynamic so the value can be changed through the CPU or GPU processor, but if there are several ExposureContrastTransform only one can have a dynamic exposure.
-
isGammaDynamic() → bool¶ Gamma can be made dynamic so the value can be changed through the CPU or GPU processor, but if there are several ExposureContrastTransform only one can have a dynamic gamma.
-
makeContrastDynamic() → None¶
-
makeContrastNonDynamic() → None¶
-
makeExposureDynamic() → None¶
-
makeExposureNonDynamic() → None¶
-
makeGammaDynamic() → None¶
-
makeGammaNonDynamic() → None¶
-
setContrast(contrast: float) → None¶ Applies a contrast/gamma adjustment around a pivot point. The contrast and gamma are mathematically the same, but two controls are provided to enable the use of separate dynamic parameters. Contrast is usually a scene-referred adjustment that pivots around gray whereas gamma is usually a display-referred adjustment that pivots around white.
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setExposure(exposure: float) → None¶ Applies an exposure adjustment. The value is in units of stops (regardless of style), for example, a value of -1 would be equivalent to reducing the lighting by one half.
-
setGamma(gamma: float) → None¶
-
setLogExposureStep(logExposureStep: float) → None¶ Set the increment needed to move one stop for the log-style algorithm. For example, ACEScct is 0.057, LogC is roughly 0.074, and Cineon is roughly 90/1023 = 0.088. The default value is 0.088.
-
setLogMidGray(logMidGray: float) → None¶ Set the position of 18% gray for use by the log-style algorithm. For example, ACEScct is about 0.41, LogC is about 0.39, and ADX10 is 445/1023 = 0.435. The default value is 0.435.
-
setPivot(pivot: float) → None¶ Set the pivot point around which the contrast and gamma controls will work. Regardless of whether linear/video/log-style is being used, the pivot is always expressed in linear. In other words, a pivot of 0.18 is always mid-gray.
-
setStyle(style: PyOpenColorIO.ExposureContrastStyle) → None¶ Select the algorithm for linear, video or log color spaces.
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::ExposureContrastTransform: public Transform¶ Applies exposure, gamma, and pivoted contrast adjustments. Adjusts the math to be appropriate for linear, logarithmic, or video color spaces.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const ExposureContrastTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
ExposureContrastStyle
getStyle() const = 0¶
-
void
setStyle(ExposureContrastStyle style) = 0¶ Select the algorithm for linear, video or log color spaces.
-
double
getExposure() const = 0¶
-
void
setExposure(double exposure) = 0¶ Applies an exposure adjustment. The value is in units of stops (regardless of style), for example, a value of -1 would be equivalent to reducing the lighting by one half.
-
bool
isExposureDynamic() const = 0¶ Exposure can be made dynamic so the value can be changed through the CPU or GPU processor, but if there are several ExposureContrastTransform only one can have a dynamic exposure.
-
void
makeExposureDynamic() = 0¶
-
void
makeExposureNonDynamic() = 0¶
-
double
getContrast() const = 0¶
-
void
setContrast(double contrast) = 0¶ Applies a contrast/gamma adjustment around a pivot point. The contrast and gamma are mathematically the same, but two controls are provided to enable the use of separate dynamic parameters. Contrast is usually a scene-referred adjustment that pivots around gray whereas gamma is usually a display-referred adjustment that pivots around white.
-
bool
isContrastDynamic() const = 0¶ Contrast can be made dynamic so the value can be changed through the CPU or GPU processor, but if there are several ExposureContrastTransform only one can have a dynamic contrast.
-
void
makeContrastDynamic() = 0¶
-
void
makeContrastNonDynamic() = 0¶
-
double
getGamma() const = 0¶
-
void
setGamma(double gamma) = 0¶
-
bool
isGammaDynamic() const = 0¶ Gamma can be made dynamic so the value can be changed through the CPU or GPU processor, but if there are several ExposureContrastTransform only one can have a dynamic gamma.
-
void
makeGammaDynamic() = 0¶
-
void
makeGammaNonDynamic() = 0¶
-
double
getPivot() const = 0¶
-
void
setPivot(double pivot) = 0¶ Set the pivot point around which the contrast and gamma controls will work. Regardless of whether linear/video/log-style is being used, the pivot is always expressed in linear. In other words, a pivot of 0.18 is always mid-gray.
-
double
getLogExposureStep() const = 0¶
-
void
setLogExposureStep(double logExposureStep) = 0¶ Set the increment needed to move one stop for the log-style algorithm. For example, ACEScct is 0.057, LogC is roughly 0.074, and Cineon is roughly 90/1023 = 0.088. The default value is 0.088.
-
double
getLogMidGray() const = 0¶
-
void
setLogMidGray(double logMidGray) = 0¶ Set the position of 18% gray for use by the log-style algorithm. For example, ACEScct is about 0.41, LogC is about 0.39, and ADX10 is 445/1023 = 0.435. The default value is 0.435.
-
~ExposureContrastTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
ExposureContrastTransformRcPtr
Create()¶
-
TransformType
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const ExposureContrastTransform&)¶
-
typedef std::shared_ptr<const ExposureContrastTransform>
OpenColorIO_v2_0::ConstExposureContrastTransformRcPtr¶
-
typedef std::shared_ptr<ExposureContrastTransform>
OpenColorIO_v2_0::ExposureContrastTransformRcPtr¶
FileTransform¶
-
class
PyOpenColorIO.FileTransform¶ -
FileTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.FileTransform) -> None
__init__(self: PyOpenColorIO.FileTransform, src: str = ‘’, cccId: str = ‘’, interpolation: PyOpenColorIO.Interpolation = <Interpolation.INTERP_DEFAULT: 254>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
getCCCId() → str¶ The cccid can be the ID of a CDL or the index of the CDL (as string). If cccid is NULL or empty the first CDL is returned. The cccid is case-sensitive.
-
getCDLStyle() → PyOpenColorIO.CDLStyle¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
static
getFormats() → PyOpenColorIO.FileTransform.FormatIterator¶
-
getInterpolation() → PyOpenColorIO.Interpolation¶ The file parsers that care about interpolation (LUTs) will try to make use of the requested interpolation method when loading the file. In these cases, if the requested method could not be used, a warning is logged. If no method is provided, or a method cannot be used, INTERP_DEFAULT is used.
-
getSrc() → str¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setCCCId(cccId: str) → None¶
-
setCDLStyle(style: PyOpenColorIO.CDLStyle) → None¶ Can be used with CDL, CC & CCC formats to specify the clamping behavior of the CDLTransform. Default is CDL_NO_CLAMP.
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setInterpolation(interpolation: PyOpenColorIO.Interpolation) → None¶
-
setSrc(src: str) → None¶
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::FileTransform: public Transform¶ Public Functions
-
TransformRcPtr
createEditableCopy() const override¶
-
TransformDirection
getDirection() const noexcept override¶
-
void
setDirection(TransformDirection dir) noexcept override¶ Note that this only affects the evaluation and not the values stored in the object.
-
TransformType
getTransformType() const noexcept override¶
-
void
validate() const override¶ Will throw if data is not valid.
-
const char *
getSrc() const¶
-
void
setSrc(const char *src)¶
-
const char *
getCCCId() const¶ The cccid can be the ID of a CDL or the index of the CDL (as string). If cccid is NULL or empty the first CDL is returned. The cccid is case-sensitive.
-
void
setCCCId(const char *id)¶
-
void
setCDLStyle(CDLStyle)¶ Can be used with CDL, CC & CCC formats to specify the clamping behavior of the CDLTransform. Default is CDL_NO_CLAMP.
-
Interpolation
getInterpolation() const¶ The file parsers that care about interpolation (LUTs) will try to make use of the requested interpolation method when loading the file. In these cases, if the requested method could not be used, a warning is logged. If no method is provided, or a method cannot be used, INTERP_DEFAULT is used.
-
void
setInterpolation(Interpolation interp)¶
-
FileTransform &
operator=(const FileTransform&) = delete¶
-
~FileTransform()¶ Do not use (needed only for pybind11).
Public Static Functions
-
FileTransformRcPtr
Create()¶
-
int
GetNumFormats()¶ Get the number of LUT readers.
-
const char *
GetFormatNameByIndex(int index)¶ Get the LUT readers at index, return empty string if an invalid index is specified.
-
const char *
GetFormatExtensionByIndex(int index)¶ Get the LUT reader extension at index, return empty string if an invalid index is specified.
-
TransformRcPtr
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const FileTransform&)¶
-
typedef std::shared_ptr<const FileTransform>
OpenColorIO_v2_0::ConstFileTransformRcPtr¶
-
typedef std::shared_ptr<FileTransform>
OpenColorIO_v2_0::FileTransformRcPtr¶
FixedFunctionTransform¶
-
class
PyOpenColorIO.FixedFunctionTransform¶ Provides a set of hard-coded algorithmic building blocks that are needed to accurately implement various common color transformations.
-
FixedFunctionTransform(style: PyOpenColorIO.FixedFunctionStyle, params: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) → None¶
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.FixedFunctionTransform) → bool¶ Checks if this exactly equals other.
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getParams() → List[float]¶
-
getStyle() → PyOpenColorIO.FixedFunctionStyle¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setParams(params: List[float]) → None¶ Set the parameters (for functions that require them).
-
setStyle(style: PyOpenColorIO.FixedFunctionStyle) → None¶ Select which algorithm to use.
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::FixedFunctionTransform: public Transform¶ Provides a set of hard-coded algorithmic building blocks that are needed to accurately implement various common color transformations.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const FixedFunctionTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
FixedFunctionStyle
getStyle() const = 0¶
-
void
setStyle(FixedFunctionStyle style) = 0¶ Select which algorithm to use.
-
size_t
getNumParams() const = 0¶
-
void
getParams(double *params) const = 0¶
-
void
setParams(const double *params, size_t num) = 0¶ Set the parameters (for functions that require them).
-
FixedFunctionTransform(const FixedFunctionTransform&) = delete¶
-
FixedFunctionTransform &
operator=(const FixedFunctionTransform&) = delete¶
-
~FixedFunctionTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
FixedFunctionTransformRcPtr
Create(FixedFunctionStyle style)¶
-
FixedFunctionTransformRcPtr
Create(FixedFunctionStyle style, const double *params, size_t num)¶
-
TransformType
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const FixedFunctionTransform&)¶
-
typedef std::shared_ptr<const FixedFunctionTransform>
OpenColorIO_v2_0::ConstFixedFunctionTransformRcPtr¶
-
typedef std::shared_ptr<FixedFunctionTransform>
OpenColorIO_v2_0::FixedFunctionTransformRcPtr¶
GroupTransform¶
-
class
PyOpenColorIO.GroupTransform¶ -
static
GetWriteFormats() → PyOpenColorIO.GroupTransform.WriteFormatIterator¶
-
GroupTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.GroupTransform) -> None
__init__(self: PyOpenColorIO.GroupTransform, transforms: List[PyOpenColorIO.Transform] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
appendTransform(transform: PyOpenColorIO.Transform) → None¶ Adds a transform to the end of the group.
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
prependTransform(transform: PyOpenColorIO.Transform) → None¶ Add a transform at the beginning of the group.
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
validate() → None¶ Will throw if data is not valid.
-
write(*args, **kwargs)¶ Overloaded function.
write(self: PyOpenColorIO.GroupTransform, formatName: str, fileName: str, config: PyOpenColorIO.Config = None) -> None
Write the transforms comprising the group to the stream.
Writing (as opposed to Baking) is a lossless process. An exception is thrown if the processor cannot be losslessly written to the specified file format. Transforms such as FileTransform or ColorSpaceTransform are resolved into write-able simple transforms using the config and context. Supported formats include CTF, CLF, and CDL. All available formats can be listed with the following: .. code-block:: cpp
// What are the allowed writing output formats? std::ostringstream formats; formats << “Formats to write to: “; for (int i = 0; i < GroupTransform::GetNumWriteFormats(); ++i) {
if (i != 0) formats << “, “; formats << GroupTransform::GetFormatNameByIndex(i); formats << ” (.” << GroupTransform::GetFormatExtensionByIndex(i) << “)”;
}
write(self: PyOpenColorIO.GroupTransform, formatName: str, config: PyOpenColorIO.Config = None) -> str
Write the transforms comprising the group to the stream.
Writing (as opposed to Baking) is a lossless process. An exception is thrown if the processor cannot be losslessly written to the specified file format. Transforms such as FileTransform or ColorSpaceTransform are resolved into write-able simple transforms using the config and context. Supported formats include CTF, CLF, and CDL. All available formats can be listed with the following: .. code-block:: cpp
// What are the allowed writing output formats? std::ostringstream formats; formats << “Formats to write to: “; for (int i = 0; i < GroupTransform::GetNumWriteFormats(); ++i) {
if (i != 0) formats << “, “; formats << GroupTransform::GetFormatNameByIndex(i); formats << ” (.” << GroupTransform::GetFormatExtensionByIndex(i) << “)”;
}
-
static
-
class
PyOpenColorIO.GroupTransform.WriteFormatIterator¶ -
self
[arg0: int]→ tuple¶
-
iter(self) → PyOpenColorIO.GroupTransform.WriteFormatIterator¶
-
len(self) → int¶
-
next(self) → tuple¶
-
self
-
class
PyOpenColorIO.GroupTransform.TransformIterator¶ -
self
[arg0: int]→ PyOpenColorIO.Transform¶
-
iter(self) → PyOpenColorIO.GroupTransform.TransformIterator¶
-
len(self) → int¶
-
next(self) → PyOpenColorIO.Transform¶
-
self
-
class
OpenColorIO_v2_0::GroupTransform: public Transform¶ Public Functions
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
ConstTransformRcPtr
getTransform(int index) const = 0¶ Throws if index is not allowed.
-
TransformRcPtr &
getTransform(int index) = 0¶ Throws if index is not allowed.
-
int
getNumTransforms() const noexcept = 0¶ Return number of transforms.
-
void
appendTransform(TransformRcPtr transform) noexcept = 0¶ Adds a transform to the end of the group.
-
void
prependTransform(TransformRcPtr transform) noexcept = 0¶ Add a transform at the beginning of the group.
-
void
write(const ConstConfigRcPtr &config, const char *formatName, std::ostream &os) const = 0¶ Write the transforms comprising the group to the stream.
Writing (as opposed to Baking) is a lossless process. An exception is thrown if the processor cannot be losslessly written to the specified file format. Transforms such as FileTransform or ColorSpaceTransform are resolved into write-able simple transforms using the config and context. Supported formats include CTF, CLF, and CDL. All available formats can be listed with the following:
// What are the allowed writing output formats? std::ostringstream formats; formats << "Formats to write to: "; for (int i = 0; i < GroupTransform::GetNumWriteFormats(); ++i) { if (i != 0) formats << ", "; formats << GroupTransform::GetFormatNameByIndex(i); formats << " (." << GroupTransform::GetFormatExtensionByIndex(i) << ")"; }
-
GroupTransform(const GroupTransform&) = delete¶
-
GroupTransform &
operator=(const GroupTransform&) = delete¶
-
~GroupTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
GroupTransformRcPtr
Create()¶
-
int
GetNumWriteFormats() noexcept¶ Get the number of writers.
-
const char *
GetFormatNameByIndex(int index) noexcept¶ Get the writer at index, return empty string if an invalid index is specified.
-
const char *
GetFormatExtensionByIndex(int index) noexcept¶
-
const FormatMetadata &
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const GroupTransform&)¶
-
typedef std::shared_ptr<const GroupTransform>
OpenColorIO_v2_0::ConstGroupTransformRcPtr¶
-
typedef std::shared_ptr<GroupTransform>
OpenColorIO_v2_0::GroupTransformRcPtr¶
LogAffineTransform¶
-
class
PyOpenColorIO.LogAffineTransform¶ Applies a logarithm with an affine transform before and after. Represents the Cineon lin-to-log type transforms:
logSideSlope * log( linSideSlope * color + linSideOffset, base) + logSideOffset
Default values are: 1. * log( 1. * color + 0., 2.) + 0.
The alpha channel is not affected.
-
LogAffineTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.LogAffineTransform) -> None
__init__(self: PyOpenColorIO.LogAffineTransform, logSideSlope: List[float[3]] = [1.0, 1.0, 1.0], logSideOffset: List[float[3]] = [0.0, 0.0, 0.0], linSideSlope: List[float[3]] = [1.0, 1.0, 1.0], linSideOffset: List[float[3]] = [0.0, 0.0, 0.0], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.LogAffineTransform) → bool¶ Checks if this exactly equals other.
-
getBase() → float¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getLinSideOffsetValue() → List[float[3]]¶
-
getLinSideSlopeValue() → List[float[3]]¶
-
getLogSideOffsetValue() → List[float[3]]¶
-
getLogSideSlopeValue() → List[float[3]]¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setBase(base: float) → None¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setLinSideOffsetValue(values: List[float[3]]) → None¶
-
setLinSideSlopeValue(values: List[float[3]]) → None¶
-
setLogSideOffsetValue(values: List[float[3]]) → None¶
-
setLogSideSlopeValue(values: List[float[3]]) → None¶
-
validate() → None¶ Will throw if data is not valid.
-
class
OpenColorIO_v2_0::LogAffineTransform: public Transform¶ Applies a logarithm with an affine transform before and after. Represents the Cineon lin-to-log type transforms::
logSideSlope * log( linSideSlope * color + linSideOffset, base) + logSideOffset
Default values are: 1. * log( 1. * color + 0., 2.) + 0.
The alpha channel is not affected.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const LogAffineTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
double
getBase() const noexcept = 0¶
-
void
setBase(double base) noexcept = 0¶
-
void
getLogSideSlopeValue(double (&values)[3]) const noexcept = 0¶
-
void
setLogSideSlopeValue(const double (&values)[3]) noexcept = 0¶
-
void
getLogSideOffsetValue(double (&values)[3]) const noexcept = 0¶
-
void
setLogSideOffsetValue(const double (&values)[3]) noexcept = 0¶
-
void
getLinSideSlopeValue(double (&values)[3]) const noexcept = 0¶
-
void
setLinSideSlopeValue(const double (&values)[3]) noexcept = 0¶
-
void
getLinSideOffsetValue(double (&values)[3]) const noexcept = 0¶
-
void
setLinSideOffsetValue(const double (&values)[3]) noexcept = 0¶
-
LogAffineTransform(const LogAffineTransform&) = delete¶
-
LogAffineTransform &
operator=(const LogAffineTransform&) = delete¶
-
~LogAffineTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
LogAffineTransformRcPtr
Create()¶
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const LogAffineTransform&)¶
-
typedef std::shared_ptr<const LogAffineTransform>
OpenColorIO_v2_0::ConstLogAffineTransformRcPtr¶
-
typedef std::shared_ptr<LogAffineTransform>
OpenColorIO_v2_0::LogAffineTransformRcPtr¶
LogCameraTransform¶
-
class
PyOpenColorIO.LogCameraTransform¶ Same as LogAffineTransform but with the addition of a linear segment near black. This formula is used for many camera logs (e.g., LogC) as well as ACEScct.
The linSideBreak specifies the point on the linear axis where the log and linear segments meet. It must be set (there is no default).
The linearSlope specifies the slope of the linear segment of the forward (linToLog) transform. By default it is set equal to the slope of the log curve at the break point.
-
LogCameraTransform() → None¶ LinSideBreak must be set for the transform to be valid (there is no default).
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.LogCameraTransform) → bool¶ Checks if this exactly equals other.
-
getBase() → float¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getLinSideBreakValue() → List[float[3]]¶
-
getLinSideOffsetValue() → List[float[3]]¶
-
getLinSideSlopeValue() → List[float[3]]¶
-
getLinearSlopeValue() → List[float[3]]¶ Return LinearSlope or 3 qnan values if not defined.
-
getLogSideOffsetValue() → List[float[3]]¶
-
getLogSideSlopeValue() → List[float[3]]¶ Get/Set values for the R, G, B components.
-
getTransformType() → PyOpenColorIO.TransformType¶
-
isLinearSlopeValueSet() → bool¶
-
setBase(base: float) → None¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setLinSideBreakValue(values: List[float[3]]) → None¶
-
setLinSideOffsetValue(values: List[float[3]]) → None¶
-
setLinSideSlopeValue(values: List[float[3]]) → None¶
-
setLinearSlopeValue(values: List[float[3]]) → None¶ Set LinearSlope value.
Note
You must call setLinSideBreakValue before calling this.
-
setLogSideOffsetValue(values: List[float[3]]) → None¶
-
setLogSideSlopeValue(values: List[float[3]]) → None¶
-
unsetLinearSlopeValue() → None¶ Remove LinearSlope values so that default values are used.
-
validate() → None¶ Will throw if data is not valid.
-
class
OpenColorIO_v2_0::LogCameraTransform: public Transform¶ Same as LogAffineTransform but with the addition of a linear segment near black. This formula is used for many camera logs (e.g., LogC) as well as ACEScct.
The linSideBreak specifies the point on the linear axis where the log and linear segments meet. It must be set (there is no default).
The linearSlope specifies the slope of the linear segment of the forward (linToLog) transform. By default it is set equal to the slope of the log curve at the break point.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const LogCameraTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
double
getBase() const noexcept = 0¶
-
void
setBase(double base) noexcept = 0¶
-
void
getLogSideSlopeValue(double (&values)[3]) const noexcept = 0¶ Get/Set values for the R, G, B components.
-
void
setLogSideSlopeValue(const double (&values)[3]) noexcept = 0¶
-
void
getLogSideOffsetValue(double (&values)[3]) const noexcept = 0¶
-
void
setLogSideOffsetValue(const double (&values)[3]) noexcept = 0¶
-
void
getLinSideSlopeValue(double (&values)[3]) const noexcept = 0¶
-
void
setLinSideSlopeValue(const double (&values)[3]) noexcept = 0¶
-
void
getLinSideOffsetValue(double (&values)[3]) const noexcept = 0¶
-
void
setLinSideOffsetValue(const double (&values)[3]) noexcept = 0¶
-
void
getLinSideBreakValue(double (&values)[3]) const noexcept = 0¶
-
void
setLinSideBreakValue(const double (&values)[3]) noexcept = 0¶
-
bool
getLinearSlopeValue(double (&values)[3]) const = 0¶ Return true if LinearSlope values were set, false if they were not.
-
void
setLinearSlopeValue(const double (&values)[3]) = 0¶ Set LinearSlope value.
- Note
You must call setLinSideBreakValue before calling this.
-
void
unsetLinearSlopeValue() = 0¶ Remove LinearSlope values so that default values are used.
-
LogCameraTransform(const LogCameraTransform&) = delete¶
-
LogCameraTransform &
operator=(const LogCameraTransform&) = delete¶
-
~LogCameraTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
LogCameraTransformRcPtr
Create(const double (&linSideBreakValues)[3])¶ LinSideBreak must be set for the transform to be valid (there is no default).
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const LogCameraTransform&)¶
-
typedef std::shared_ptr<const LogCameraTransform>
OpenColorIO_v2_0::ConstLogCameraTransformRcPtr¶
-
typedef std::shared_ptr<LogCameraTransform>
OpenColorIO_v2_0::LogCameraTransformRcPtr¶
LogTransform¶
-
class
PyOpenColorIO.LogTransform¶ Represents log transform: log(color, base)
The input will be clamped for negative numbers.
Default base is 2.0.
The alpha channel is not affected.
-
LogTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.LogTransform) -> None
__init__(self: PyOpenColorIO.LogTransform, base: float = 2.0, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.LogTransform) → bool¶ Checks if this exactly equals other.
-
getBase() → float¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setBase(base: float) → None¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
validate() → None¶ Will throw if data is not valid.
-
class
OpenColorIO_v2_0::LogTransform: public Transform¶ Represents log transform: log(color, base)
The input will be clamped for negative numbers.
Default base is 2.0.
The alpha channel is not affected.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const LogTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
double
getBase() const noexcept = 0¶
-
void
setBase(double val) noexcept = 0¶
-
LogTransform(const LogTransform&) = delete¶
-
LogTransform &
operator=(const LogTransform&) = delete¶
-
~LogTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
LogTransformRcPtr
Create()¶
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const LogTransform&)¶
-
typedef std::shared_ptr<const LogTransform>
OpenColorIO_v2_0::ConstLogTransformRcPtr¶
-
typedef std::shared_ptr<LogTransform>
OpenColorIO_v2_0::LogTransformRcPtr¶
LookTransform¶
-
class
PyOpenColorIO.LookTransform¶ -
LookTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.LookTransform) -> None
__init__(self: PyOpenColorIO.LookTransform, src: str, dst: str, looks: str = ‘’, skipColorSpaceConversion: bool = False, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getDst() → str¶
-
getLooks() → str¶
-
getSkipColorSpaceConversion() → bool¶
-
getSrc() → str¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setDst(dst: str) → None¶
-
setLooks(looks: str) → None¶ Specify looks to apply. Looks is a potentially comma (or colon) delimited list of look names, Where +/- prefixes are optionally allowed to denote forward/inverse look specification. (And forward is assumed in the absence of either)
-
setSkipColorSpaceConversion(skipColorSpaceConversion: bool) → None¶
-
setSrc(src: str) → None¶
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::LookTransform: public Transform¶ Public Functions
-
TransformRcPtr
createEditableCopy() const override¶
-
TransformDirection
getDirection() const noexcept override¶
-
void
setDirection(TransformDirection dir) noexcept override¶ Note that this only affects the evaluation and not the values stored in the object.
-
TransformType
getTransformType() const noexcept override¶
-
void
validate() const override¶ Will throw if data is not valid.
-
const char *
getSrc() const¶
-
void
setSrc(const char *src)¶
-
const char *
getDst() const¶
-
void
setDst(const char *dst)¶
-
const char *
getLooks() const¶
-
void
setLooks(const char *looks)¶ Specify looks to apply. Looks is a potentially comma (or colon) delimited list of look names, Where +/- prefixes are optionally allowed to denote forward/inverse look specification. (And forward is assumed in the absence of either)
-
bool
getSkipColorSpaceConversion() const¶
-
void
setSkipColorSpaceConversion(bool skip)¶
-
LookTransform &
operator=(const LookTransform&) = delete¶
-
~LookTransform()¶ Do not use (needed only for pybind11).
Public Static Functions
-
LookTransformRcPtr
Create()¶
-
const char *
GetLooksResultColorSpace(const ConstConfigRcPtr &config, const ConstContextRcPtr &context, const char *looks)¶ Return the name of the color space after applying looks in the forward direction but without converting to the destination color space. This is equivalent to the process space of the last look in the look sequence (and takes into account that a look fall-back may be used).
-
TransformRcPtr
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const LookTransform&)¶
-
typedef std::shared_ptr<const LookTransform>
OpenColorIO_v2_0::ConstLookTransformRcPtr¶
-
typedef std::shared_ptr<LookTransform>
OpenColorIO_v2_0::LookTransformRcPtr¶
Lut1DTransform¶
-
class
PyOpenColorIO.Lut1DTransform¶ Represents a 1D-LUT transform.
-
Lut1DTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.Lut1DTransform) -> None
Create an identity 1D-LUT of length two.
__init__(self: PyOpenColorIO.Lut1DTransform, length: int, inputHalfDomain: bool) -> None
Create an identity 1D-LUT with specific length and half-domain setting. Will throw for lengths longer than 1024x1024.
__init__(self: PyOpenColorIO.Lut1DTransform, length: int = 2, inputHalfDomain: bool = False, outputRawHalfs: bool = False, fileOutputBitDepth: PyOpenColorIO.BitDepth = <BitDepth.BIT_DEPTH_UNKNOWN: 0>, hueAdjust: PyOpenColorIO.Lut1DHueAdjust = <Lut1DHueAdjust.HUE_NONE: 0>, interpolation: PyOpenColorIO.Interpolation = <Interpolation.INTERP_DEFAULT: 254>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
Create an identity 1D-LUT with specific length and half-domain setting. Will throw for lengths longer than 1024x1024.
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.Lut1DTransform) → bool¶ Checks if this exactly equals other.
-
getData() → numpy.ndarray¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFileOutputBitDepth() → PyOpenColorIO.BitDepth¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getHueAdjust() → PyOpenColorIO.Lut1DHueAdjust¶
-
getInputHalfDomain() → bool¶
-
getInterpolation() → PyOpenColorIO.Interpolation¶
-
getLength() → int¶
-
getOutputRawHalfs() → bool¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
getValue(index: int) → tuple¶
-
setData(data: buffer) → None¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setFileOutputBitDepth(bitDepth: PyOpenColorIO.BitDepth) → None¶ Get the bit-depth associated with the LUT values read from a file or set the bit-depth of values to be written to a file (for file formats such as CLF that support multiple bit-depths). However, note that the values stored in the object are always normalized.
-
setHueAdjust(hueAdjust: PyOpenColorIO.Lut1DHueAdjust) → None¶ The 1D-LUT transform optionally supports a hue adjustment feature that was used in some versions of ACES. This adjusts the hue of the result to approximately match the input.
-
setInputHalfDomain(isHalfDomain: bool) → None¶ In a half-domain LUT, the contents of the LUT specify the desired value of the function for each half-float value. Therefore, the length of the LUT must be 65536 entries or else validate() will throw.
-
setInterpolation(interpolation: PyOpenColorIO.Interpolation) → None¶
-
setLength(length: int) → None¶ Changing the length will reset the LUT to identity. Will throw for lengths longer than 1024x1024.
-
setOutputRawHalfs(isRawHalfs: bool) → None¶ Set OutputRawHalfs to true if you want to output the LUT contents as 16-bit floating point values expressed as unsigned 16-bit integers representing the equivalent bit pattern. For example, the value 1.0 would be written as the integer 15360 because it has the same bit-pattern. Note that this implies the values will be quantized to a 16-bit float. Note that this setting only controls the output formatting (where supported) and not the values for getValue/setValue. The only file formats that currently support this are CLF and CTF.
-
setValue(index: int, r: float, g: float, b: float) → None¶ Set the values of a LUT1D. Will throw if the index is outside of the range from 0 to (length-1).
The LUT values are always for the “forward” LUT, regardless of how the transform direction is set.
These values are normalized relative to what may be stored in any given LUT files. For example in a CLF file using a “10i” output depth, a value of 1023 in the file is normalized to 1.0. The values here are unclamped and may extend outside [0,1].
LUTs in various file formats may only provide values for one channel where R, G, B are the same. Even in that case, you should provide three equal values to the setter.
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::Lut1DTransform: public Transform¶ Represents a 1D-LUT transform.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
void
setFileOutputBitDepth(BitDepth bitDepth) noexcept = 0¶ Get the bit-depth associated with the LUT values read from a file or set the bit-depth of values to be written to a file (for file formats such as CLF that support multiple bit-depths). However, note that the values stored in the object are always normalized.
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const Lut1DTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
unsigned long
getLength() const = 0¶
-
void
setLength(unsigned long length) = 0¶ Changing the length will reset the LUT to identity. Will throw for lengths longer than 1024x1024.
-
void
getValue(unsigned long index, float &r, float &g, float &b) const = 0¶
-
void
setValue(unsigned long index, float r, float g, float b) = 0¶ Set the values of a LUT1D. Will throw if the index is outside of the range from 0 to (length-1).
The LUT values are always for the “forward” LUT, regardless of how the transform direction is set.
These values are normalized relative to what may be stored in any given LUT files. For example in a CLF file using a “10i” output depth, a value of 1023 in the file is normalized to 1.0. The values here are unclamped and may extend outside [0,1].
LUTs in various file formats may only provide values for one channel where R, G, B are the same. Even in that case, you should provide three equal values to the setter.
-
bool
getInputHalfDomain() const noexcept = 0¶
-
void
setInputHalfDomain(bool isHalfDomain) noexcept = 0¶ In a half-domain LUT, the contents of the LUT specify the desired value of the function for each half-float value. Therefore, the length of the LUT must be 65536 entries or else validate() will throw.
-
bool
getOutputRawHalfs() const noexcept = 0¶
-
void
setOutputRawHalfs(bool isRawHalfs) noexcept = 0¶ Set OutputRawHalfs to true if you want to output the LUT contents as 16-bit floating point values expressed as unsigned 16-bit integers representing the equivalent bit pattern. For example, the value 1.0 would be written as the integer 15360 because it has the same bit-pattern. Note that this implies the values will be quantized to a 16-bit float. Note that this setting only controls the output formatting (where supported) and not the values for getValue/setValue. The only file formats that currently support this are CLF and CTF.
-
Lut1DHueAdjust
getHueAdjust() const noexcept = 0¶
-
void
setHueAdjust(Lut1DHueAdjust algo) = 0¶ The 1D-LUT transform optionally supports a hue adjustment feature that was used in some versions of ACES. This adjusts the hue of the result to approximately match the input.
-
Interpolation
getInterpolation() const = 0¶
-
void
setInterpolation(Interpolation algo) = 0¶
-
Lut1DTransform(const Lut1DTransform&) = delete¶
-
Lut1DTransform &
operator=(const Lut1DTransform&) = delete¶
-
~Lut1DTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
Lut1DTransformRcPtr
Create()¶ Create an identity 1D-LUT of length two.
-
Lut1DTransformRcPtr
Create(unsigned long length, bool isHalfDomain)¶ Create an identity 1D-LUT with specific length and half-domain setting. Will throw for lengths longer than 1024x1024.
-
TransformType
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const Lut1DTransform&)¶
-
typedef std::shared_ptr<const Lut1DTransform>
OpenColorIO_v2_0::ConstLut1DTransformRcPtr¶
-
typedef std::shared_ptr<Lut1DTransform>
OpenColorIO_v2_0::Lut1DTransformRcPtr¶
Lut3DTransform¶
-
class
PyOpenColorIO.Lut3DTransform¶ Represents a 3D-LUT transform.
-
Lut3DTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.Lut3DTransform) -> None
Create an identity 3D-LUT of size 2x2x2.
__init__(self: PyOpenColorIO.Lut3DTransform, gridSize: int) -> None
Create an identity 3D-LUT with specific grid size. Will throw for grid size larger than 129.
__init__(self: PyOpenColorIO.Lut3DTransform, gridSize: int = 2, fileOutputBitDepth: PyOpenColorIO.BitDepth = <BitDepth.BIT_DEPTH_UNKNOWN: 0>, interpolation: PyOpenColorIO.Interpolation = <Interpolation.INTERP_DEFAULT: 254>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
Create an identity 3D-LUT with specific grid size. Will throw for grid size larger than 129.
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.Lut3DTransform) → bool¶ Checks if this exactly equals other.
-
getData() → numpy.ndarray¶
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFileOutputBitDepth() → PyOpenColorIO.BitDepth¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getGridSize() → int¶
-
getInterpolation() → PyOpenColorIO.Interpolation¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
getValue(indexR: int, indexG: int, indexB: int) → tuple¶
-
setData(data: buffer) → None¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setFileOutputBitDepth(bitDepth: PyOpenColorIO.BitDepth) → None¶ Get the bit-depth associated with the LUT values read from a file or set the bit-depth of values to be written to a file (for file formats such as CLF that support multiple bit-depths). However, note that the values stored in the object are always normalized.
-
setGridSize(gridSize: int) → None¶ Changing the grid size will reset the LUT to identity. Will throw for grid sizes larger than 129.
-
setInterpolation(interpolation: PyOpenColorIO.Interpolation) → None¶
-
setValue(indexR: int, indexG: int, indexB: int, r: float, g: float, b: float) → None¶ Set the values of a 3D-LUT. Will throw if an index is outside of the range from 0 to (gridSize-1).
The LUT values are always for the “forward” LUT, regardless of how the transform direction is set.
These values are normalized relative to what may be stored in any given LUT files. For example in a CLF file using a “10i” output depth, a value of 1023 in the file is normalized to 1.0. The values here are unclamped and may extend outside [0,1].
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::Lut3DTransform: public Transform¶ Represents a 3D-LUT transform.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
void
setFileOutputBitDepth(BitDepth bitDepth) noexcept = 0¶ Get the bit-depth associated with the LUT values read from a file or set the bit-depth of values to be written to a file (for file formats such as CLF that support multiple bit-depths). However, note that the values stored in the object are always normalized.
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const Lut3DTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
unsigned long
getGridSize() const = 0¶
-
void
setGridSize(unsigned long gridSize) = 0¶ Changing the grid size will reset the LUT to identity. Will throw for grid sizes larger than 129.
-
void
getValue(unsigned long indexR, unsigned long indexG, unsigned long indexB, float &r, float &g, float &b) const = 0¶
-
void
setValue(unsigned long indexR, unsigned long indexG, unsigned long indexB, float r, float g, float b) = 0¶ Set the values of a 3D-LUT. Will throw if an index is outside of the range from 0 to (gridSize-1).
The LUT values are always for the “forward” LUT, regardless of how the transform direction is set.
These values are normalized relative to what may be stored in any given LUT files. For example in a CLF file using a “10i” output depth, a value of 1023 in the file is normalized to 1.0. The values here are unclamped and may extend outside [0,1].
-
Interpolation
getInterpolation() const = 0¶
-
void
setInterpolation(Interpolation algo) = 0¶
-
Lut3DTransform(const Lut3DTransform&) = delete¶
-
Lut3DTransform &
operator=(const Lut3DTransform&) = delete¶
-
~Lut3DTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
Lut3DTransformRcPtr
Create()¶ Create an identity 3D-LUT of size 2x2x2.
-
Lut3DTransformRcPtr
Create(unsigned long gridSize)¶ Create an identity 3D-LUT with specific grid size. Will throw for grid size larger than 129.
-
TransformType
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const Lut3DTransform&)¶
-
typedef std::shared_ptr<const Lut3DTransform>
OpenColorIO_v2_0::ConstLut3DTransformRcPtr¶
-
typedef std::shared_ptr<Lut3DTransform>
OpenColorIO_v2_0::Lut3DTransformRcPtr¶
MatrixTransform¶
-
class
PyOpenColorIO.MatrixTransform¶ Represents an MX+B Matrix transform.
Note
For singular matrices, an inverse direction will throw an exception during finalization.
-
static
Fit(oldMin: List[float[4]] = [0.0, 0.0, 0.0, 0.0], oldMax: List[float[4]] = [1.0, 1.0, 1.0, 1.0], newMin: List[float[4]] = [0.0, 0.0, 0.0, 0.0], newMax: List[float[4]] = [1.0, 1.0, 1.0, 1.0]) → PyOpenColorIO.MatrixTransform¶
-
static
Identity() → PyOpenColorIO.MatrixTransform¶
-
static
Sat(sat: float, lumaCoef: List[float[3]]) → PyOpenColorIO.MatrixTransform¶
-
static
Scale(scale: List[float[4]]) → PyOpenColorIO.MatrixTransform¶
-
static
View(channelHot: List[int[4]], lumaCoef: List[float[3]]) → PyOpenColorIO.MatrixTransform¶
-
MatrixTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.MatrixTransform) -> None
__init__(self: PyOpenColorIO.MatrixTransform, matrix: List[float[16]] = [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], offset: List[float[4]] = [0.0, 0.0, 0.0, 0.0], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.MatrixTransform) → bool¶ Checks if this exactly equals other.
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFileInputBitDepth() → PyOpenColorIO.BitDepth¶
-
getFileOutputBitDepth() → PyOpenColorIO.BitDepth¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getMatrix() → List[float[16]]¶
-
getOffset() → List[float[4]]¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setFileInputBitDepth(bitDepth: PyOpenColorIO.BitDepth) → None¶
-
setFileOutputBitDepth(bitDepth: PyOpenColorIO.BitDepth) → None¶
-
setMatrix(matrix: List[float[16]]) → None¶ Get or set the values of a Matrix. Expects 16 values, where the first four are the coefficients to generate the R output channel from R, G, B, A input channels.
The Matrix values are always for the “forward” Matrix, regardless of how the transform direction is set.
These values are normalized relative to what may be stored in file formats such as CLF. For example in a CLF file using a “32f” input depth and “10i” output depth, a value of 1023 in the file is normalized to 1.0. The values here are unclamped and may extend outside [0,1].
-
setOffset(offset: List[float[4]]) → None¶ Get or set the R, G, B, A offsets to be applied after the matrix.
These values are normalized relative to what may be stored in file formats such as CLF. For example, in a CLF file using a “10i” output depth, a value of 1023 in the file is normalized to 1.0. The values here are unclamped and may extend outside [0,1].
-
validate() → None¶ Will throw if data is not valid.
-
static
-
class
OpenColorIO_v2_0::MatrixTransform: public Transform¶ Represents an MX+B Matrix transform.
- Note
For singular matrices, an inverse direction will throw an exception during finalization.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const MatrixTransform &other) const noexcept = 0¶ Checks if this exactly equals other.
-
void
getMatrix(double *m44) const = 0¶
-
void
setMatrix(const double *m44) = 0¶ Get or set the values of a Matrix. Expects 16 values, where the first four are the coefficients to generate the R output channel from R, G, B, A input channels.
The Matrix values are always for the “forward” Matrix, regardless of how the transform direction is set.
These values are normalized relative to what may be stored in file formats such as CLF. For example in a CLF file using a “32f” input depth and “10i” output depth, a value of 1023 in the file is normalized to 1.0. The values here are unclamped and may extend outside [0,1].
-
void
getOffset(double *offset4) const = 0¶
-
void
setOffset(const double *offset4) = 0¶ Get or set the R, G, B, A offsets to be applied after the matrix.
These values are normalized relative to what may be stored in file formats such as CLF. For example, in a CLF file using a “10i” output depth, a value of 1023 in the file is normalized to 1.0. The values here are unclamped and may extend outside [0,1].
-
MatrixTransform(const MatrixTransform&) = delete¶
-
MatrixTransform &
operator=(const MatrixTransform&) = delete¶
-
~MatrixTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
MatrixTransformRcPtr
Create()¶
-
void
Fit(double *m44, double *offset4, const double *oldmin4, const double *oldmax4, const double *newmin4, const double *newmax4)¶
-
void
Identity(double *m44, double *offset4)¶
-
void
Sat(double *m44, double *offset4, double sat, const double *lumaCoef3)¶
-
void
Scale(double *m44, double *offset4, const double *scale4)¶
-
void
View(double *m44, double *offset4, int *channelHot4, const double *lumaCoef3)¶
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const MatrixTransform&) noexcept¶
-
typedef std::shared_ptr<const MatrixTransform>
OpenColorIO_v2_0::ConstMatrixTransformRcPtr¶
-
typedef std::shared_ptr<MatrixTransform>
OpenColorIO_v2_0::MatrixTransformRcPtr¶
RangeTransform¶
-
class
PyOpenColorIO.RangeTransform¶ Represents a range transform
The Range is used to apply an affine transform (scale & offset) and clamps values to min/max bounds on all color components except the alpha. The scale and offset values are computed from the input and output bounds.
Refer to section 7.2.4 in specification S-2014-006 “A Common File Format for Look-Up Tables” from the Academy of Motion Picture Arts and Sciences and the American Society of Cinematographers.
The “noClamp” style described in the specification S-2014-006 becomes a MatrixOp at the processor level.
-
RangeTransform(*args, **kwargs)¶ Overloaded function.
__init__(self: PyOpenColorIO.RangeTransform) -> None
Creates an instance of RangeTransform.
__init__(self: PyOpenColorIO.RangeTransform, minInValue: float = nan, maxInValue: float = nan, minOutValue: float = nan, maxOutValue: float = nan, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
Creates an instance of RangeTransform.
-
str(self)¶ Return str(self).
-
equals(other: PyOpenColorIO.RangeTransform) → bool¶ Checks if this equals other.
-
getDirection() → PyOpenColorIO.TransformDirection¶
-
getFileInputBitDepth() → PyOpenColorIO.BitDepth¶
-
getFileOutputBitDepth() → PyOpenColorIO.BitDepth¶
-
getFormatMetadata() → PyOpenColorIO.FormatMetadata¶
-
getMaxInValue() → float¶ Get the maximum value for the input.
-
getMaxOutValue() → float¶ Get the maximum value for the output.
-
getMinInValue() → float¶ Get the minimum value for the input.
-
getMinOutValue() → float¶ Get the minimum value for the output.
-
getStyle() → PyOpenColorIO.RangeStyle¶
-
getTransformType() → PyOpenColorIO.TransformType¶
-
hasMaxInValue() → bool¶ Is the maximum value for the input set?
-
hasMaxOutValue() → bool¶ Is the maximum value for the output set?
-
hasMinInValue() → bool¶ Is the minimum value for the input set?
-
hasMinOutValue() → bool¶ Is the minimum value for the output set?
-
setDirection(direction: PyOpenColorIO.TransformDirection) → None¶ Note that this only affects the evaluation and not the values stored in the object.
-
setFileInputBitDepth(bitDepth: PyOpenColorIO.BitDepth) → None¶
-
setFileOutputBitDepth(bitDepth: PyOpenColorIO.BitDepth) → None¶
-
setMaxInValue(value: float) → None¶ Set the maximum value for the input.
-
setMaxOutValue(value: float) → None¶ Set the maximum value for the output.
-
setMinInValue(value: float) → None¶ Set the minimum value for the input.
-
setMinOutValue(value: float) → None¶ Set the minimum value for the output.
-
setStyle(style: PyOpenColorIO.RangeStyle) → None¶ Set the Range style to clamp or not input values.
-
unsetMaxInValue() → None¶ Unset the maximum value for the input.
-
unsetMaxOutValue() → None¶ Unset the maximum value for the output.
-
unsetMinInValue() → None¶ Unset the minimum value for the input.
-
unsetMinOutValue() → None¶ Unset the minimum value for the output.
-
validate() → None¶ Will throw if data is not valid.
-
-
class
OpenColorIO_v2_0::RangeTransform: public Transform¶ Represents a range transform
The Range is used to apply an affine transform (scale & offset) and clamps values to min/max bounds on all color components except the alpha. The scale and offset values are computed from the input and output bounds.
Refer to section 7.2.4 in specification S-2014-006 “A Common File Format
for Look-Up Tables” from the Academy of Motion Picture Arts and Sciences and the American Society of Cinematographers.
The “noClamp” style described in the specification S-2014-006 becomes a MatrixOp at the processor level.
Public Functions
-
TransformType
getTransformType() const noexcept override¶
-
RangeStyle
getStyle() const noexcept = 0¶
-
void
setStyle(RangeStyle style) noexcept = 0¶ Set the Range style to clamp or not input values.
-
const FormatMetadata &
getFormatMetadata() const noexcept = 0¶
-
FormatMetadata &
getFormatMetadata() noexcept = 0¶
-
bool
equals(const RangeTransform &other) const noexcept = 0¶ Checks if this equals other.
-
double
getMinInValue() const noexcept = 0¶ Get the minimum value for the input.
-
void
setMinInValue(double val) noexcept = 0¶ Set the minimum value for the input.
-
bool
hasMinInValue() const noexcept = 0¶ Is the minimum value for the input set?
-
void
unsetMinInValue() noexcept = 0¶ Unset the minimum value for the input.
-
void
setMaxInValue(double val) noexcept = 0¶ Set the maximum value for the input.
-
double
getMaxInValue() const noexcept = 0¶ Get the maximum value for the input.
-
bool
hasMaxInValue() const noexcept = 0¶ Is the maximum value for the input set?
-
void
unsetMaxInValue() noexcept = 0¶ Unset the maximum value for the input.
-
void
setMinOutValue(double val) noexcept = 0¶ Set the minimum value for the output.
-
double
getMinOutValue() const noexcept = 0¶ Get the minimum value for the output.
-
bool
hasMinOutValue() const noexcept = 0¶ Is the minimum value for the output set?
-
void
unsetMinOutValue() noexcept = 0¶ Unset the minimum value for the output.
-
void
setMaxOutValue(double val) noexcept = 0¶ Set the maximum value for the output.
-
double
getMaxOutValue() const noexcept = 0¶ Get the maximum value for the output.
-
bool
hasMaxOutValue() const noexcept = 0¶ Is the maximum value for the output set?
-
void
unsetMaxOutValue() noexcept = 0¶ Unset the maximum value for the output.
-
RangeTransform(const RangeTransform&) = delete¶
-
RangeTransform &
operator=(const RangeTransform&) = delete¶
-
~RangeTransform() = default¶ Do not use (needed only for pybind11).
Public Static Functions
-
RangeTransformRcPtr
Create()¶ Creates an instance of RangeTransform.
-
TransformType
-
std::ostream &
OpenColorIO_v2_0::operator<<(std::ostream&, const RangeTransform&) noexcept¶
-
typedef std::shared_ptr<const RangeTransform>
OpenColorIO_v2_0::ConstRangeTransformRcPtr¶
-
typedef std::shared_ptr<RangeTransform>
OpenColorIO_v2_0::RangeTransformRcPtr¶