Releases: AcademySoftwareFoundation/OpenImageIO
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)
v3.0.10.1
v2.5.19.1
Release 2.5.19.1 (Sep 15 2025) -- compared to 2.5.19.0
- ffmpeg: Replace deprecated and soon removed avcodec_close with avcodec_free_context #4837 (by Vlad Erium)
- heic: Use get_plane2 introduced by libheif 1.20.2 #4851 (by toge)
- ci: Various fixes to repair CI that had rusted away in the last few
months due to changes on the runners or to dependencies.
Note that this is a patch release for the obsolete 2.5 branch that merely repairs its ability to build under new versions of some dependencies. You need not upgrade if you are not encountering build problems. Except for legacy constraints, everybody should currently be using OIIO 3.0 and testing the beta for 3.1 which will become the new supported branch very soon.
v3.0.10.0
v3.1.4.0-beta
First beta of the 3.1 release series.
Release 3.1 (target: Sept 2025?) -- compared to 3.0
- Beta 1: Aug 22, 2025
- Anticipated release candidate: Sep 1(ish), 2025
- Anticipated supported release: Sep 15, 2025
NOTE: We anticipate some additional changes to color management to be
rolled out during the beta period. It will not include any breaks to API or
ABI compatibility, but we do expect some behavior changes.
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 to conform to Color Interchange Forum and
OpenEXR new conventions for naming and specifying color spaces.
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)
- 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)
- 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
🚀 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)
- oiotool: 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.0)
- oiiotool: Allow thread control for --parallel-frames #4818 (3.1.3.0)
- color mgmt: Support OCIO Viewing Rules, other OCIO-related improvements #4780 (by zachlewis) (3.1.3.0)
- iv: Fix crash on .DS_Store; fix uppercase extensions [#4764](https://github.com/AcademySoftwareFoundation/Open...
v3.0.9.1
OpenImageIO v3.0.9.0
Release 3.0.9.0 (Aug 1, 2025) -- compared to 3.0.8.1
- maketx: Add flags to increase feature parity with txmake #4841 (by Scott Milner)
- perf: Speed up
maketx --envlatlwhen multithreaded by over 10x. #4825 - perf: Speed up OpenEXR non-core header read time #4832
- oiiotool: Allow thread control for --parallel-frames #4818
- ImageInput: Incorrect IOProxy logic related to valid_file #4839
- python: Got strides wrong passing 2D numpy pixel array #4843
- ffmpeg: Replace deprecated and soon removed avcodec_close with avcodec_free_context #4837 (by Vlad Erium)
- build/python: For python stub generation, lock pybind11 to pre-3.0 #4831
- build: Fix typo related to finding ccache #4833
- build: PNG auto-build improvements #4835
- build: Propagate CMAKE_MSVC_RUNTIME_LIBRARY #4842
- build: Update jpeg2000input.cpp to include cstdarg #4836 (by Peter Kovář)
- ci: Bump 'latest releases' tests to use pybind11 3.0.0 #4828
- (docs): Correct docs and type of "resident_memory_used_MB" attribute #4824
- (admin): Update SECURITY to reflect that 2.5 only gets critical fixes now #4829
v3.0.8.1
Release 3.0.8.1 (Jul 5, 2025) -- compared to 3.0.8.0
- build(heif): Fixes to build against libheif 1.20 #4822 (by Rui Chen)
- ci: Wheel upload_pypi step should only run from main repo #4820
- ci: Bump 'latest' test versions #4819
Note: the only important change that necessitated this unscheduled patch release is #4822 to fix a build break with a newly released libheif. If you know you do not need to build against libheif >= 1.20, you don't need to upgrade, as this is otherwise identical to v3.0.8.0.