colour.io.write_image_OpenImageIO#

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

Write given image data at given path using OpenImageIO.

Parameters
  • image (ArrayLike) – Image data.

  • path (str) – 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 (Optional[Sequence]) – 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)