colour.io.write_image_OpenImageIO#

colour.io.write_image_OpenImageIO(image: ArrayLike, path: str | Path, bit_depth: Literal['uint8', 'uint16', 'float16', 'float32', 'float64', 'float128'] = 'float32', attributes: Sequence | None = None) bool[source]#

Write given image data at given path using OpenImageIO.

Parameters:
  • image (ArrayLike) – Image data.

  • path (str | Path) – Image path.

  • bit_depth (Literal['uint8', 'uint16', 'float16', 'float32', 'float64', 'float128']) – Bit-depth to write the image at, the bit-depth conversion behaviour is ruled directly by OpenImageIO.

  • attributes (Sequence | None) – An array of colour.io.ImageAttribute_Specification class instances used to set attributes of the image.

Returns:

Definition success.

Return type:

bool

Examples

Basic image writing:

>>> import os
>>> import colour
>>> path = os.path.join(
...     colour.__path__[0],
...     "io",
...     "tests",
...     "resources",
...     "CMS_Test_Pattern.exr",
... )
>>> image = read_image(path)  
>>> path = os.path.join(
...     colour.__path__[0],
...     "io",
...     "tests",
...     "resources",
...     "CMSTestPattern.tif",
... )
>>> write_image_OpenImageIO(image, path)  
True

Advanced image writing while setting attributes:

>>> compression = ImageAttribute_Specification("Compression", "none")
>>> write_image_OpenImageIO(image, path, "uint8", [compression])
... 
True

Writing an “ACES” compliant “EXR” file:

>>> if is_openimageio_installed():  
...     from OpenImageIO import TypeDesc
...
...     chromaticities = (
...         0.7347,
...         0.2653,
...         0.0,
...         1.0,
...         0.0001,
...         -0.077,
...         0.32168,
...         0.33767,
...     )
...     attributes = [
...         ImageAttribute_Specification("acesImageContainerFlag", True),
...         ImageAttribute_Specification(
...             "chromaticities", chromaticities, TypeDesc("float[8]")
...         ),
...         ImageAttribute_Specification("compression", "none"),
...     ]
...     write_image_OpenImageIO(image, path, attributes=attributes)