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.Image_Specification_Attribute
class instances used to set attributes of the image.
- Returns:
Definition success.
- Return type:
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 = Image_Specification_Attribute("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 = [ ... Image_Specification_Attribute("acesImageContainerFlag", True), ... Image_Specification_Attribute( ... "chromaticities", chromaticities, TypeDesc("float[8]") ... ), ... Image_Specification_Attribute("compression", "none"), ... ] ... write_image_OpenImageIO(image, path, attributes=attributes)