Skip to content

Releases: AcademySoftwareFoundation/OpenImageIO

v3.0.10.0

01 Sep 17:07
v3.0.10.0
154d355
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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.

v2.5.19.0

06 Jul 00:38
v2.5.19.0
Compare
Choose a tag to compare

NOTE: This is an unscheduled release of the obsolete 2.5 series, to address the fact that without it, 2.5 would no longer build against the new libheif, which is the default version you get from Homebrew.

Our strong recommendation is that anybody still using 2.5 should upgrade as soon as possible to the supported 3.0 series of releases.

Release 2.5.19.0 (July 5 2025) -- compared to 2.5.18.0

  • build: Fixes to build against libheif 1.20 #4822 (by Rui Chen)

OpenImageIO v3.0.8.0

01 Jul 15:09
v3.0.8.0
Compare
Choose a tag to compare

Release 3.0.8.0 (Jul 1, 2025) -- compared to 3.0.7.0

  • oiiotool: New expression pseudo-metadata term: SUBIMAGES #4804
  • oiiotool: Fixes to --missingfile behavior #4803
  • iv: Area probe #4767 (by Danielle Imogu)
  • python: Python ImageBuf.init_spec did not return correct value #4805
  • fix: ImageOutput::check_open logic was flawed #4779
  • int(iv): Add raw string syntax modifier for VSCode and Cursor to understand its glsl #4796 (by Aleksandr Motsjonov)
  • int(iv): Use R"()" syntax for glsl shader strings for better readability #4795 (by Aleksandr Motsjonov)
  • exr: Not honoring 'missingcolor' for scanline files #4757
  • build: Add arm_neon.h include on Windows ARM64 with clang-cl #4691 (by Anthony Roberts)
  • build: Adjust pystring finding #4816
  • build(jxl): Use correct cmake variables for the include directories #4810 #4813 (by Jesse Yurkovich)
  • tests: Remove old test reference output we no longer need #4817
  • ci: Remove tests on Windows-2019 GitHub runner #4793
  • ci: Various ccache save/restore improvements for CI runs #4797
  • ci: Simplify gh-win-installdeps, no more vcpkg #4809
  • admin: Remove stale intake documents #4815

OpenImageIO v3.0.7.0

01 Jun 17:58
v3.0.7.0
Compare
Choose a tag to compare

Release 3.0.7.0 (Jun 1, 2025) -- compared to 3.0.6.1

  • oiiotool: --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)
  • oiiotool: Added --create-dir flag to create directories needed by -o
    if they doesn't already exist #4762 (by Dharshan Vishwanatha)
  • oiiotool: --eraseattrib:fromfile=1 #4763 (by Lydia Zheng)
  • oiiotool: Added create-dir cmd arg to create dir if it doesn't exist #4762 (by Dharshan Vishwanatha)
  • oiiotool: -i:native=1, fix --native behavior, fix convert datatype #4708
  • iv: Fix crash on .DS_Store; fix uppercase extensions #4764 (by Anton Dukhovnikov)
  • iv: Do not resize on open and other zoom fixes #4766 (by Aleksandr Motsjonov)
  • iv: Bug fix for iv window losing focus on mac on startup #4773 (by Aleksandr Motsjonov)
  • iv: Implement files drag and drop into an iv window #4774 (by Aleksandr Motsjonov)
  • iv: Use screen pixel ratio to render sharp text in pixel view tool #4768 (by Aleksandr Motsjonov)
  • python: Add python stub files #4692 #4754 (by Chad Dombrova)
  • python: ImageBuf _repr_png_ method added, which allows use of
    ImageBuf in Jupyter Notebooks as a displayable object. #4753 (by Oktay Comu)
  • exr: Did not properly allocate 'missingcolor' vector #4751
  • exr: Add htj2k as a compression option for OpenEXR. Only works with OpenEXR 3.4 or higher (or in-progress OpenEXR main). #4785 (by Li Ji)
  • iff: Improved IFF support reading and writing z buffers #4673 (by Mikael Sundell)
  • webp: Respect the oiio:UnassociatedAlpha attribute #4770 (by Jesse Yurkovich)
  • webp: Allow finer grained control over WEBP compression settings #4772 (by Jesse Yurkovich)
  • flx/python: IBA.demosaic had GIL release in wrong spot #4777
  • fix: ImageInput/ImageOutput did not set per-file threads correctly #4750
  • fix: Address safety warnings in pvt::append_tiff_dir_entry #4737
  • build: Fix fmt throwing behavior warnings #4730
  • build: Detect libultrahdr version and enforce minimum of 1.3 #4729
  • build: Fix failed test with old fmt #4758
  • ci: Save time by not checking out entire project history #4731
  • ci: New testing variants for VFX Platform 2025, Windows 2025 #4744, Linux ARM #4749
  • ci: Update ref output to compensate for GitHub windows drive changes #4761
  • ci: Pkg config libdir fix #4775 (by Scott Wilson)
  • ci: For docs workflow, lock down versions and speed up #4646
  • ci: Improved clang-format CI task #4647
  • ci: Add facility for benchmarking as part of CI #4745
  • ci: Update ref image for slightly changed freetype accents #4765
  • docs: Online docs improvements, mostly formatting (#4736, #4743)
  • docs: Update Windows build instructions to rely on deps auto-build #4769

OpenImageIO v3.0.6.1

03 May 04:06
v3.0.6.1
Compare
Choose a tag to compare

This is just a single bug fix for a possible downstream compatibility fix we introduced. If you aren't encountering the problem, you don't need to rush to upgrade.

Release 3.0.6.1 (May 2, 2025) -- compared to 3.0.6.0

  • fix: Restore OIIO_AVX512ER_ENABLED preprocessor symbol. Its absence could break backwards source compatibility if anyone was using it, even though it was useless and broken. Where compatibility goes, better safe than sorry. #4735

OpenImageIO v3.0.6.0

01 May 18:56
v3.0.6.0
Compare
Choose a tag to compare

Release 3.0.6.0 (May 1, 2025) -- compared to 3.0.5.0

  • oiiotool: Add --text modifiers measure= and render= #4681
  • python: Fix handle leak #4685
  • bmp: Correct the type for BMP x/y density #4695 (by Campbell Barton)
  • dpx: Specify the units for DPX scanned size #4694 (by Campbell Barton)
  • sgi: Fix valid_file to properly swap bytes on little-endian platforms #4697 (by Jesse Yurkovich)
  • build: Fix new dcmtk 3.6.9 vs C++ warning #4698
  • build: Address Robin-map vs CMake 4.0 compatibility #4701
  • build: Fix broken OIIO_SITE customization #4709
  • build: Address compiler warnings in simd.h #4724
  • build/windows: Clean up Windows compilation warnings #4706
  • build/windows: Include Windows version information on produced binaries #4696 (by Jesse Yurkovich)
  • ci: Move away from soon-to-be-deprecated ubuntu-20.04 GHA runner #4636