Releases: AcademySoftwareFoundation/OpenImageIO
Releases · AcademySoftwareFoundation/OpenImageIO
v3.1.8.0
Release 3.1.8.0 (Dec 1, 2025) -- compared to 3.1.7.0
- exif: Support EXIF 3.0 tags #4961
- jpeg: Fix wrong pointers/crashing when decodng CMYK jpeg files #4963
- openexr: Improve attribute translation rules #4946
- openexr: ACES container writes colorInteropId instead of colorInteropID #4966 (by Brecht Van Lommel)
- color mgmt: Fix some legacy 'Linear' color references #4959
- imagebuf: Fix
ImageBuf::set_pixels()bug, didn't consider roi = All #4949 - tests: Image_span_test reduce benchmark load for debug and CI renders #4951
- build: Type warning in assertion in jpeg2000output.cpp #4952
- build: Disable LERC in libTIFF local build script #4957 (by LI JI)
- ci: Fix broken ci, debug and static cases, bump some latest #4954
- ci: Unbreak icc/icx CI #4958
- admin: Update some license notices #4955
v3.0.13.0
v3.1.7.0
Release 3.1.7.0 (Nov 1, 2025) -- compared to 3.1.6.1
- openexr: Support for idManifest and deepImageState (experimental) #4877 (3.1.7.0)
- openexr: ACES Container hint for exr outputs #4907 (by Oktay Comu) (3.1.7.0)
- ffmpeg: 10 bit video had wrong green channel #4935 (by Brecht Van Lommel) (3.1.7.0)
- iff: Handle non-zero origin, protect against buffer overflows #4925 (3.1.7.0)
- jpeg-xl: Correctly set Quality for JPEG XL #4933 (3.1.7.0)
- api/docs: Fix IBA::set_pixels declaration and docs #4926 (3.1.7.0)
- win: Address Windows crashes from issue 4641 #4914 (3.1.7.0)
- fix: Uninitialized value revealed by clang-21 warning #4940 (3.1.7.0)
- build/deps: Additional auto-build capabilities for dependencies that are not found: GIF library #4921 (by Valery Angelique), OpenJPEG #4911 (by Danny Greenstein) (3.1.7.0)
- build: Allow auto-build of just required packages #4927 (3.1.7.0)
- build: Make dependency report more clear about what was required #4929 (3.1.7.0)
- ci: Python wheel building improvements: use ccache #4924 (by Larry Gritz), unbreak wheel release + other enhancements pt 1 #4937 (by Zach Lewis) (3.1.7.0)
- ci: Drop deprecated macos-13 (intel) platform, add macos-15-intel #4930 (3.1.7.0)
- ci: Try to avoid ffmpeg install failures #4936 (3.1.7.0)
- ci: Simplify ci workflow by using build-steps for old aswf containers, too #4932 (3.1.7.0)
- ci: We were not correctly setting fmt version from job options #4939 (3.1.7.0)
- tests: Update ref images for heif #4941 (3.1.7.0)
- docs: Update/correct explanation of "openexr:core" attribute, and typo fixes #4943 (3.1.7.0)
v3.0.12.0
Release 3.0.12.0 (Nov 1, 2025) -- compared to 3.0.11.0
- iff: Handle non-zero origin, protect against buffer overflows #4925
- jpeg-xl: Correctly set Quality for JPEG XL #4933
- win: Address Windows crashes from issue 4641 #4914
- fix: Uninitialized value revealed by clang-21 warning #4940
- ci: For python wheel generation, use ccache #4924
- ci: Drop deprecated macos-13 (intel) platform, add macos-15-intel #4930
- ci: We were not correctly setting fmt version from job options #4939
v3.1.6.2
v3.1.6.1
Release 3.1 (Oct 2, 2025) -- compared to 3.0.x
- Beta 1: Aug 22, 2025
- Beta 2: Sep 19, 2025
- Release candidate 1: Sep 27, 2025
- Full release, v3.1.6.1: Oct 2, 2025
Executive Summary / Highlights:
- New image file support: Ultra HDR (HDR images in JPEG containers).
- oiiotool new commands:
--layersplit,--pastemeta,--demosaic,
--create-dirand new expression expansion tokens:IS_CONSTANT,
IS_BLACK,SUBIMAGES. - New IBA image processing functions:
scale(),demosaic(). - New 2-level namespace scheme that we hope will make it possible in the
future for our annual releases to NOT need to break backward ABI
compatibility. - Support in Python for
ImageBuf._repr_png_method allows use of OIIO
inside Jupyter Notebooks to display computed
images. - Color management improvements: Conform to Color Interchange Forum and
OpenEXR new conventions for naming and specifying color spaces. PNG,
HEIC, and ffmpeg/video files now support reading CICP metadata.
New minimum dependencies and compatibility changes:
⛰️ New features and public API changes:
- New image file format support:
- jpeg: Support reading Ultra HDR images #4484 (by Loïc Vital) (3.1.0.0/3.0.1.0)
- oiiotool new features and major improvements:
- New expression eval tokens:
IS_CONSTANT,IS_BLACK#4610 (by Lydia Zheng) (3.1.1.0);SUBIMAGES#4804 (3.1.3.0) --layersplit, new command to split layers #4591 (by Loïc Vital) (3.1.1.0)--pastemetanow takes additional modifiers that allows options for merging rather than rewriting, and is able to copy only a subset of the metadata specified by a regex. #4672 #4674 #4676 (3.1.1.0)--demosaicadd X-Trans demosaicing #4579 (by Anton Dukhovnikov) (3.1.1.0)--render_textnew modifiersmeasure=andrender=can
be used to measure the size of rendered text without drawing it.` #4681 (3.1.3.0)--create-dirflag creates directories needed by-o
if they doesn't already exist #4762 (by Dharshan Vishwanatha) (3.1.3.0)--eraseattribnew modifier:fromfile=1reads from a file
to get a list of patterns to specify the attributes to erase. #4763 (by Lydia Zheng) (3.1.3.0)- oiiotool: Allow easy splitting of subimages by name #4874 (3.1.5.0)
- New expression eval tokens:
- Command line utilities:
- ImageBuf/ImageBufAlgo:
- New
ImageBuf::merge_metadata(): merges one IB's metadata into another's without deleting the metadata already present. It can also filter which metadata are copied using a regex. #4672 (3.1.1.0) - New
ImageBufAlgo::scale(): scales all channels of a multi-channel image by the single channel of a second image. #4541 (by Anton Dukhovnikov) (3.1.0.0/3.0.1.0) ImageBufAlgo::demosaic()added support for X-Trans demosaicing #4579 (by Anton Dukhovnikov) (3.1.1.0)
- New
- APIs moving to
spanandimage_span:
Add API calls usingspanandimage_spanas the preferred alternative for
the historical calls that took raw pointers and spans to designate buffers
to read from or write into. - ImageCache/TextureSystem:
- maketx: Add maketx flags to increase feature parity with txmake #4841 (by Scott Milner) (3.1.4.0)
- New global attribute queries via OIIO::getattribute():
- Miscellaneous API changes:
- api: Make a 2-level namespace scheme #4567 (by Larry Gritz) #4603 (by Brecht Van Lommel) (3.1.1.0) #4869 (3.1.5.0)
- api: ImageSpec::scanline_bytes, tile_bytes, image_bytes #4631 (3.1.1.0)
- python: ImageBuf
_repr_png_method added, which allows use of
ImageBuf in Jupyter Notebooks as a displayable object. #4753 (by Oktay Comu) (3.1.3.0) - python: Add python stub files #4692 (by Chad Dombrova) (3.1.3.0)
- api: Add new ImageInput::supports() query: "mipmap" #4800 (3.1.3.0)
- Color management changes
- color mgmt: Don't assume unlabeled OpenEXR files are lin_rec709 #4840 (3.1.4.0)
- color mgmt: Color space renaming to adhere to CIF conventions #4860 (3.1.4.0)
- Ability to read CICP metadata from PNG #4746 (by Zach Lewis) (3.1.5.0), HEIC #4880 (by Brecht Van Lommel) (3.1.5.0), and video files/ffmpeg #4882 (by Brecht Van Lommel) (3.1.5.0).
🚀 Performance improvements:
- perf: IBA::unsharp_mask() speed and memory optimization #4513 (by Vlad (Kuzmin) Erium) (3.1.0.0/3.0.1.0)
- perf: Oiiotool --line --text --point --box speedups #4518 (3.1.0.0/3.0.1.0)
- perf: Jpeg2000 valid_file implementation, much faster than trying to open #4548 (by Aras Pranckevičius) (3.1.0.0/3.0.1.0)
- perf: Faster utf8<->utf16 conversion on Windows #4549 (by Aras Pranckevičius) (3.1.0.0/3.0.1.0)
- perf: Speed up
maketx --envlatlwhen multithreaded by over 10x. #4825 - perf: Speed up OpenEXR non-core header read time #4832
🐛 Fixes and feature enhancements:
- oiiotool: Better handling of wildcards that match no files #4627 (3.1.1.0)
- oiiotool: Invalid loop bound when appending mipmap textures using oiiotool #4671 (by Basile Fraboni) (3.1.1.0)
- oiiotool: -i:native=1, fix --native behavior, fix convert datatype #4708 (3.1.3.0)
- oiiotool: Fixes to --missingfile behavior #4803 (3.1.3...
v3.0.11.0
Release 3.0.11.0 (Oct 1, 2025) -- compared to 3.0.10.1
- oiiotool: Allow easy splitting output of subimages by name #4874
- webp: Support reading/writing the ICCProfile attribute for WepP files#4878 (by Jesse Yurkovich)
- gif: GIF output didn't handle FramesPerSecond attribute correctly #4890
- deps: Test freetype 2.14 and document that it works #4876
- deps: Look for boost headers for OpenVDBs older than 12 #4873 (by Alex Fuller)
- deps: Support for OpenColorIO 2.5 #4916
Please note that this will be the last 3.0 release that is marked as the "latest" release (further 3.0.x releases will be forthcoming, but considered a legacy branch). A 3.1 release is imminent that will become the current, fully supported branch for the next year.
v3.1.6.0-rc1
Change highlights in RC1
- oiiotool: Use normalized path when creating wildcard path pattern #4904 (by Jesse Yurkovich) (3.1.6.0)
- oiiotool: Ignore empty subimage(s) when calculating non-zero region #4909 (by Carine Touraille) (3.1.6.0)
- docs/python: Add type hints to Python docs #4908 (by Connie Chang) (3.1.6.0)
- build: Fix some build issues encountered on a musl libc system #4903 (by omcaif) (3.1.6.0)
- ci: Sonar scan guard #4902 (by vvalderrv) (3.1.6.0)
- ci: Add more exceptions to when we test docs building #4899 (3.1.6.0)
- ci: Require all dependencies, with explicit exceptions #4898 (3.1.6.0)
If no critical bugs are found, this will be released within a week as the first official supported 3.1 version.
v3.1.5.0-beta2
- Anticipated release candidate: Sep 24, 2025
- Anticipated supported release: Oct 1, 2025
Change highlights in beta 2
- oiiotool: Allow easy splitting of subimages by name #4874 (3.1.5.0)
- ffmpeg: Add ability to read CICP metadata #4882 (by Brecht Van Lommel) (3.1.5.0)
- ffmpeg: FFmpeg incorrectly set zero oiio:BitsPerSample #4885 (by Brecht Van Lommel) (3.1.5.0)
- gif: Gif output didn't handle FramesPerSecond attribute correctly #4890 (3.1.5.0)
- heic: Read and write of CICP and support for bit depth 10 and 12 #4880 (by Brecht Van Lommel) (3.1.5.0)
- png: CICP metadata support for PNG #4746 (by Zach Lewis) (3.1.5.0)
- raw: Add thumbnail support to the raw input plugin #4887 (by Anton Dukhovnikov) (3.1.5.0)
- webp: Support reading/writing the ICCProfile attribute #4878 (by Jesse Yurkovich) (3.1.5.0)
- api: Versioned namespace to preserve ABI compatibility between minor releases #4869 (3.1.5.0)
- deps(freetype): Test freetype 2.14 and document that it works #4876 (3.1.5.0)
- deps(ffmpeg): Ffmpeg 8 support #4870 (3.1.5.0)
- deps(openvdb): Look for boost headers for OpenVDBs older than 12 #4873 (by Alex Fuller) (3.1.5.0)
- deps(openexr): OpenEXR 3.4 supports two compression types for HTJ2K #4871 (by Todica Ionut) (3.1.5.0)
- deps(openexr): Several OpenEXR and OpenJPH build related fixes #4875 (3.1.5.0)
- deps(openjph): Fix openjph target use #4894 (3.1.5.0)
- ci: Fix broken python wheel building #4855 (by Zach Lewis) (3.1.5.0)