Skip to content

Releases: AcademySoftwareFoundation/OpenImageIO

v3.0.11.0

01 Oct 22:35
v3.0.11.0

Choose a tag to compare

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

28 Sep 01:25
v3.1.6.0-rc1

Choose a tag to compare

v3.1.6.0-rc1 Pre-release
Pre-release

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

20 Sep 01:27
v3.1.5.0-beta2

Choose a tag to compare

v3.1.5.0-beta2 Pre-release
Pre-release
  • 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

17 Sep 05:15
v3.0.10.1

Choose a tag to compare

Release 3.0.10.1 (Sep 16, 2025) -- compared to 3.0.10.0

  • ci: Fix broken python wheel building #4886 #4855 (by Zach Lewis)
  • deps: Several fixes to build against OpenEXR 3.4 and OpenJPH build related fixes #4875

v2.5.19.1

15 Sep 17:41
v2.5.19.1

Choose a tag to compare

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

01 Sep 17:07
v3.0.10.0
154d355

Choose a tag to compare

Release 3.0.10.0 (Sep 1, 2025) -- compared to 3.0.9.0

  • exr: Support for OpenEXR 3.4's new compression types for HTJ2K #4871 (by Todica Ionut)
  • deps: Ffmpeg 8 support #4870
  • ci: Add a VFX Platform 2026 CI job #4856
  • ci: Bump webp and openexr for "latest versions" test #4861

v3.1.4.0-beta

23 Aug 00:22
v3.1.4.0-beta
8606e1a

Choose a tag to compare

v3.1.4.0-beta Pre-release
Pre-release

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-dir and 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:

  • Python: 3.9 minimum (from 3.7) #4830 (3.1.4.0)
  • OpenColorIO: 2.3 minimum (from 2.2) #4865 (3.1.4.0)

⛰️ 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)
    • --pastemeta now 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)
    • --demosaic add X-Trans demosaicing #4579 (by Anton Dukhovnikov) (3.1.1.0)
    • --render_text new modifiers measure= and render= can
      be used to measure the size of rendered text without drawing it.` #4681 (3.1.3.0)
    • --create-dir flag creates directories needed by -o
      if they doesn't already exist #4762 (by Dharshan Vishwanatha) (3.1.3.0)
    • --eraseattrib new modifier :fromfile=1 reads from a file
      to get a list of patterns to specify the attributes to erase. #4763 (by Lydia Zheng) (3.1.3.0)
  • Command line utilities:
    • iv: Implement files drag and drop into an iv window #4774 (by Aleksandr Motsjonov) (3.1.3.0)
    • iv: Area probe #4767 (by Danielle Imogu) (3.1.3.0)
    • iv: Add min/max/avg and sizing to pixel closeup view #4807 (by Aleksandr Motsjonov) (3.1.4.0)
  • 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)
  • APIs moving to span and image_span:
    Add API calls using span and image_span as the preferred alternative for
    the historical calls that took raw pointers and spans to designate buffers
    to read from or write into.
    • image_span.h: Add image_span template, deprecate image_view #4703 #4784 (3.1.3.0)
    • ImageInput / ImageOutput: #4669 (3.1.1.0) #4727 #4748 (3.1.3.0)
    • ImageCache/TextureSystem: #4783 (3.1.3.0) #4838 (3.1.4.0)
    • ImageBuf: #4814 (3.1.3.0) #4827 (3.1.4.0)
  • 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():
    • Added queries for available font families and styles #4523 (by peterhorvath111) (3.1.0.0/3.0.1.0)
    • api: Add global attribute imageinput:strict #4560 (3.1.0.0)
  • 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
    • 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)

🚀 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 --envlatl when 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...
Read more

v3.0.9.1

08 Aug 00:04
v3.0.9.1

Choose a tag to compare

Release 3.0.9.1 (Aug 7, 2025) -- compared to 3.0.9.0

  • deps: C++23 support #4844
  • deps: Adapt to libheif 1.20.2 #4851 (by toge)

OpenImageIO v3.0.9.0

01 Aug 17:08
v3.0.9.0

Choose a tag to compare

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 --envlatl when 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

05 Jul 15:02
v3.0.8.1

Choose a tag to compare

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.