Skip to content

Releases: AcademySoftwareFoundation/OpenImageIO

v3.1.8.0

01 Dec 03:18
v3.1.8.0

Choose a tag to compare

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

01 Dec 03:05
v3.0.13.0

Choose a tag to compare

Release 3.0.13.0 (Dec 1, 2025) -- compared to 3.0.12.0

  • exif: Support EXIF 3.0 tags #4961
  • 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

v3.1.7.0

01 Nov 18:21
v3.1.7.0

Choose a tag to compare

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

01 Nov 07:30
v3.0.12.0

Choose a tag to compare

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

04 Oct 07:01
v3.1.6.2

Choose a tag to compare

Release 3.1.6.2 (Oct 3, 2025) -- compared to 3.1.6.1

  • oiioversion.h: Restore definition of OIIO_NAMESPACE_USING macro #4920

v3.1.6.1

02 Oct 22:02
v3.1.6.1
21cb70d

Choose a tag to compare

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

  • 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)
    • oiiotool: Allow easy splitting of subimages by name #4874 (3.1.5.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) #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 --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)
  • 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...
Read more

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