Skip to content

Releases: AcademySoftwareFoundation/OpenImageIO

OpenImageIO v2.5.11.0

01 May 17:18
Compare
Choose a tag to compare

Release 2.5.11.0 (May 1, 2024) -- compared to 2.5.10.0

  • dds: DDS support more DXGI formats #4220 (by alexguirre)
  • psd: Add support for 16- and 32-bit Photoshop file reads #4208 (by EmilDohne)
  • fix(fmt.h): Fix build break from recent fmt change #4227
  • fix(openexr): Fix out-of-bounds reads when using OpenEXR decreasingY lineOrder. #4215 (by Aaron Colwell)
  • fix: Don't use (DY)LD_LIBRARY_PATH as plugin search paths #4245 (by Brecht Van Lommel)
  • fix: Fix crash when no default fonts are found #4249
  • build: Disable clang18 warnings about deprecated unicode conversion #4246
  • security: Better documentation of past CVE fixes in SECURITY.md #4238

OpenImageIO v2.5.10.1

01 Apr 19:08
Compare
Choose a tag to compare

Release 2.5.10.1 (Apr 1, 2024) -- compared to 2.5.9.0

  • oiiotool: Expression substitution now understands pseudo-metadata NONFINITE_COUNT that returns the number of nonfinite values in the image, thus allowing decision making about fixnan #4171
  • color management: Automatically recognize some additional color space name synonyms: "srgb_texture", "lin_rec709" and "lin_ap1". Also add common permutation "srgb_tx" and "srgb texture" as additional aliases for "srgb". #4166
  • openexr: Implement copy_image for OpenEXR #4004 (by Andy Chan)
  • heic: Don't auto-transform camera-rotated images #4142 #4184
  • hash.h: Mismatched pragma push/pop in hash.h #4182
  • simd.h: gather_mask() was wrong for no-simd fallback #4183
  • texture.h: Overload decode_wrapmode to support ustringhash #4207 (by Chris Hellmuth)
  • build: Fix warning when Freetype is disabled #4177
  • build: iv build issues with glTexImage3D #4202 (by Vlad (Kuzmin) Erium)
  • build: Fix buld_ninja.bash to make directories and download correctly #4192 (by Sergio Rojas)
  • build: Need additional include #4194
  • build: FindOpenColorIO failed to properly set OpenColorIO_VERSION #4196
  • build: Restore internals of strhash to compile correctly on 32 bit architectures #4213
  • ci: Allow triggering CI workflow from web #4178
  • ci: Make one of the Mac tests build for avx2 #4188
  • ci: Enable Windows 2022 CI tests #4195
  • docs: Fix some typos and add missing oiiotool expression explanations #4169
  • admin: Add a ROADMAP document #4161

OpenImageIO v2.5.9.0

01 Mar 17:53
Compare
Choose a tag to compare

Release 2.5.9.0 (Mar 1, 2024) -- compared to 2.5.8.0

  • oiiotool: Overhaul and fix bugs in mixed-channel propogation #4127
  • oiiotool: Fixes to buildinfo queries #4150
  • dcmtk: Fixes for DCMTK #4147
  • build: Address NEON issues in simd.h. #4143
  • typedesc.h: Allow TypeDesc to have all the right POD attributes #4162 (by Scott Wilson)
  • internals: Various fixes for memory safety and reduce static analysis complaints #4128
  • internals: Coalesce redundant STRINGIZE macros -> OIIO_STRINGIZE #4121
  • ci: Start using macos-14 ARM runners, bump latest OCIO #4134
  • ci: Switch away from deprecated GHA idiom set-output #4141
  • ci: Add vfx platform 2024 #4163
  • ci: Fix Windows CI, need to build newer openexr and adjust boost search #4167
  • tests: Add test for filter values and 'filter_list' query #4140
  • docs: Update SECURITY and RELEASING documentation #4138
  • docs: Fix tab that was missing from the rendering on rtd #4137
  • docs: Fix python example #4139
  • admin: More updated relicensing code under Apache 2.0

OpenImageIO v2.5.8.0

01 Feb 06:01
Compare
Choose a tag to compare

Release 2.5.8.0 (Feb 1, 2024) -- compared to 2.5.7.0

  • feat(oiiotool): New --buildinfo command prints build information,
    including version, compiler, and all library dependencies. #4124
  • feat(api): New global getattribute queries: "build:platform",
    "build:compiler", "build:dependencies" #4124
  • feat(openexr): Add support for luminance-chroma OpenEXR images. #4070 (by jreichel-nvidia)
  • fix(raw): Avoid buffer overrun for flip direction cases #4100
  • fix(iv): Assume iv display gamma 2.2 if GAMMA env variable is not set #4118
  • fix: Fixes to reduce problems identified by static analysis #4113
  • dev(simd.h): Make all-architecture matrix44::inverse() #4076
  • dev(simd.h): Fix AVX-512 round function #4119 (by AngryLoki)
  • build(deps): Remove Findfmt.cmake, rely on that package's exported config. #4069 #4103 (by Dominik Wójt)
  • build(deps): Account for header changes in fmt project trunk #4109 #4114
  • tests: Shuffle some tests between directories #4091
  • tests: Fix docs test, used wrong namespace #4090
  • docs: Fix broken IBA color management documentation #4104
  • style: Update our formatting standard to clang-format 17.0 and C++17 #4096

OpenImageIO v2.5.7.0

01 Jan 21:00
Compare
Choose a tag to compare

Release 2.5.7.0 (Jan 1, 2024) -- compared to 2.5.6.0

  • fix(iv): Avoid crash with OpenGL + multi-channel images #4087
  • fix(png): Fix crash for writing large PNGs with alpha #4074
  • fix(ImageInput): Only check REST arguments if the file does not exist, avoiding problems for filenames that legitimately contain a ? character. #4085 (by AdamMainsTL)
  • perf(IBA): Improve perf of ImageBufAlgo::channels in-place operation #4088
  • build: Ptex support for static library #4072 (by Dominik Wójt)
  • build: Add a way to cram in a custom extra library for iv #4086
  • build: JPEG2000: Include the headers we need to discern version #4073
  • tests: Improve color management test in imagebufalgo_test #4063
  • tests: Add one more ref output for python-colorconfig test #4065
  • ci: Restrict Mac ARM running #4077
  • ci: Rename macro to avoid conflict during CI unity builds #4092
  • docs: Fix typo #4089
  • docs: Fix link to openexr test images #4080 (by Jesse Yurkovich)
  • admin: Account for duplicate emails in the .mailmap #4075
  • dev: Faster vint4 load/store with unsigned char conversion #4071 (by Aras Pranckevičius)

OpenImageIO v2.5.6.0

02 Dec 13:23
Compare
Choose a tag to compare

Release 2.5.6.0 (Dec 1, 2023) -- compared to 2.5.5.0

  • oiiotool: --autocc bugfix and color config inventory cleanup #4060
  • idiff: Fix issue when computing perceptual diff #4061 (by Aura Munoz)
  • ci: Add tiff-misc reference for slightly changed error messages #4052
  • ci: Remove MacOS-11 test #4053
  • ci: Test against gcc-13 #4059
  • build: Better cmake verbose behavior #4037
  • docs: Update INSTALL.md to reflect the latest versions we've tested against #4058
  • admin: Fix typo in slack-release-notifier version #4046 #4047
  • admin: More relicensing code under Apache 2.0 #4038

OpenImageIO v2.4.17.0

02 Nov 00:26
Compare
Choose a tag to compare

Note that this is a release on an obsolete branch. The currently fully-supported release branch is 2.5, and we recommend that if at all possible. This patch release to 2.4 is meant for people who need these fixes are aren't able to update to 2.5 yet.

Release 2.4.17.0 (1 Nov 2023) -- compared to 2.4.16.0

  • build: Protect against mismatch of OpenVDB vs C++ #4023 #4030
  • exr: Handle edge case of exr attribute that interferes with our hints #4008
  • OpenCV: IBA::to_OpenCV fails for ImageCache-backed images #4013
  • tests: Add opencv regression test #4024

OpenImageIO v2.5.5.0

01 Nov 22:02
Compare
Choose a tag to compare

Release 2.5.5.0 (Nov 1, 2023) -- compared to 2.5.4.0

  • build: Provide compile_commands.json for use by tools #4014 (by David Aguilar)
  • build: Don't fail for 32 bit builds because of static_assert check #4006
  • build: Protect against mismatch of OpenVDB vs C++ #4023
  • build: Adjust OpenVDB version requirements vs C++17 #4030
  • ci: CI tests on MacOS ARM, and fixes found consequently #4026
  • idiff: Allow users to specify a directory as the 2nd argument #4015 (by David Aguilar)
  • iv: Implement Directory Argument Loading for iv #4010 (by Chaitanya Sharma)
  • iv: Split off the current image in iv into a separate window #4017 (by Anton Dukhovnikov)
  • Print unretrieved global error messages #4005
  • ImageBuf: Fix crash when mutable Iterator used with read-IB #3997
  • exr: Handle edge case of exr attribute that interferes with our hints #4008
  • raw: LibRaw wavelet denoise options #4028 (by Vlad (Kuzmin) Erium)
  • OpenCV: IBA::to_OpenCV fails for ImageCache-backed images #4013
  • tests: Add opencv regression test #4024

OpenImageIO v2.5.4.0

02 Oct 03:37
Compare
Choose a tag to compare

Release 2.5 (2.5.4.0, Oct 1, 2023) -- compared to 2.4

New minimum dependencies and compatibility changes:

  • CMake: minimum needed to build OpenImageIO has been raised from 3.12 to
    3.15. #3924 (2.5.2.1)
  • LibRaw: minimum has ben raised from 0.15 to 0.18.
    #3921 (2.5.2.1)
  • The new OpenEXR minimum is 2.4 (raised from 2.3).
    #3928 (2.5.2.1)
  • The new fmt library minimum is 7.0 (raised from 6.1)
    #3973 (2.5.3.0)
  • The new libjpeg-turbo (if used; it is optional) has been raised to
    2.1. #3987 (2.5.3.1-beta2)

⛰️ New features and public API changes:

  • TextureSystem color management: #3761 (2.5.1.0)
    • TextureOpt and TextureOptBatch have a new field, colortransformid,
      which supplies an integer ID for a requested color space transformation
      to be applied as texture tiles are read. The default value 0 means no
      transformation because the texture is presumed to be in the working
      color space (this is the old behavior, and most performant). Tiles from
      the same texture file but using different color transformations are
      allowed and will not interfere with each other in the cache.
    • New TextureSystem::get_colortransform_id(from, to) maps from/to named
      color spaces to a color transform ID that can be passed to texture
      lookup calls.
    • ImageCache::get_image_handle and TextureSystem::get_texture_handle
      now take an optional TextureOpt* parameter that can supply additional
      constraints (such as color transformation) that TS/IC implementations
      may wish to split into separate handles. This is currently not used, but
      is reserved so that the API doesn't need to be changed if we use it in
      the future.
    • texture.h defines symbol OIIO_TEXTURESYSTEM_SUPPORTS_COLORSPACE that
      can be tested for existence to know if the new fields are in the
      TextureOpt structure.
  • Extensive support for OpenColorIO 2.2 functionality and improved color
    management:
    • When building against OCIO 2.2, you can specify/use the new "built-in"
      configs, including using ocio://default, which will automatically be
      usd if no config is specified and the $OCIO variable is not set #3662
      #3707 (2.5.0.0)
    • OIIO tries to find and honor the common color space aliases
      "scene_linear", "srgb", "lin_srgb", and "ACEScg". When building against
      OCIO 2.2+, it will know which of any config's color spaces are
      equivalent to these, even if they are named something totally different,
      thanks to the magic of OCIO 2.2 built-in configs. For older OCIO (2.1 or
      older), it is less robust and may have to make best guesses based on the
      name of the color spaces it finds. #3707 (2.5.0.0)
      #3995 (2.5.3.2-rc1)
    • New ColorConfig methods: getAliases() #3662; isColorSpaceLinear()
      #3662; resolve(name) turns any color space name, alias, role, or OIIO
      name (like "sRGB") into a canonical color space name;
      equivalent(n1,n2) returns true if it can tell that the two names
      refer, ultimately, to equivalent color spaces #3707 (2.5.0.0)
    • New ImageSpec::set_colorspace() method is a more thorough way to set
      the color space data than simply setting the "oiio:ColorSpace" metadata
      (though it also does that). #3734 (2.5.0.1)
    • Improve OIIO's ability to guess which of the config's color space names
      are aliases for common spaces such as srgb, lin_srgb, and acescg (quite
      robustly if using OCIO >= 2.2, even for totally nonstandard names in the
      config). #3755 (2.5.0.1)
    • New ColorConfig::getColorSpaceIndex() looks up a color space index by
      its name, alias, or role. #3758 (2.5.0.1)
  • oiiotool new commands and features:
    • New --iccread and --iccwrite add an ICC profile from an external
      file to the metadata of an image, or extract the ICC profile metadata
      and save it as a separate file. #3550 (2.5.0.0)
    • New --parallel-frames parallelizes execution over a frame range rather
      than over regions within each image operation. This should be used with
      caution, as it will give incorrect results for an oiiotool command line
      involving a frame range where the iterations have a data dependency on
      each other and must be executed in order. But in cases where the order
      of frame processing doesn't matter and there are many more frames in the
      sequence than cores, you can get a substantial performance improvement
      using this flag. #3849 (2.5.2.0)
    • New --no-error-exit causes an error to not exit immediately, but
      rather to try to execute the remaining command line operations. This is
      intended primarily for unit tests and debugging. #3643 (2.5.0.0)
    • New --colorconfiginfo prints the full inventory of color management
      information, including color space aliases, roles, and with improved
      readability of output for larger configs. #3707 (2.5.0.0)
    • The --resize command takes new optional :from=, :to=, and
      :edgeclamp= modifiers to give more general and fine control over the
      specific correspondence between display windows in the input image and
      resized destination image (including allowing partial pixel offsets).
      #3751 #3752 (2.5.0.1)
    • New expression substitution additions:
      • New syntax for retrieving metadata {TOP[foo]} is similar to the
        existing {TOP.foo}, if there is no foo metadata found, the
        former evaluates to an empty string, whereas the latter is an error.
        #3619 (2.4.5/2.5.0.0)
      • {NIMAGES} gives current stack depth
        #3822 (2.5.2.0)
      • {nativeformat} is the pixel data format of the file, whereas the
        existing format has always returned the data type used in memory.
        Also, METANATIVE and METANATIVEBRIEF are the full metadata
        keywords for native file metadata, comapred to the previously
        existing META and METABRIEF which we now clarify reflect the
        in-memory representation. #3639 (2.5.0.0)
    • --ociodisplay now takes an optional :inverse=1 modifier. #3650
      (2.5.0.0)
    • New -otex optional modifier forcefloat=0 can improve memory use for
      enormous texture conversion.
      #3829 (2.5.2.0)
    • --printinfo now takes new optional modifiers: :native=1 ensures
      that the metadata printed is of the file, not changed by the way the
      image is stored in memory (for example, it may have been converted to
      a more convenient in-memory data type); :verbose=1 prints verbose
      stats even if -v is not used; :stats=1 prints full pixel stats,
      even if --stats is not used. #3639 (2.5.0.0)
    • New --normalize mormalizes image that represent 3D vectors (i.e.,
      divide by their length) textures. This is helpful for normal maps.
      #3945 (by Vlad (Kuzmin) Erium) (2.5.3.0)
  • ImageBufAlgo additions:
    • A new flavor of ociodisplay() now contains an inverse parameter.
      #3650 (2.5.0.0)
    • New normalize() normalizes image that represent 3D vectors (i.e.,
      divide by their length) textures. This is helpful for normal maps.
      #3945 (by Vlad (Kuzmin)
      Erium) #3963 (2.5.3.0)
  • ImageBuf changes:
    • ImageBuf: Only back IB with IC when passed an IC
      #3986 (2.5.3.1-beta2)
  • ImageInput / ImageOutput:
    • New ImageOutput::check_open() method can be used by format writers
      authors to centralize certain validity tests so they don't need to be
      implemented separately for each file type. This is not meant to be
      called by client application code, only by format writer authors. #3686
      (2.5.0.0)
    • Add an ImageInput::valid_file(IOProxy) overload
      #3826 (by Jesse Y)
      (2.5.2.0) and implement its overloads for DDS, PSD, and WEBP
      #3831 (by Jesse Y)
      (2.5.2.0)
    • New ImageOutput::check_open() and ImageInput::open_check() can be
      used by format reader/writer authors to centralize certain validity
      tests so they don't need to be implemented separately for each file
      type. This is not meant to be called by client application code, only by
      format reader/writer authors.
      #3686 (2.5.0.0)
      #3967 (2.5.3.0)
    • ImageInput: Add an ImageInput::valid_file(IOProxy) overload
      #3826 (by Jesse Y) (2.5.2.0)
    • ImageInput: Im...
Read more

OpenImageIO v2.4.16.0

02 Oct 03:03
Compare
Choose a tag to compare

Release 2.4.16.0 (1 Oct 2023) -- compared to 2.4.15.0

  • png: Write out proper tiff header version in png EXIF blobs #3984 (by Jesse Yurkovich)
  • ustring: Fix Cuda warnings #3978
  • fmath: Prevent infinite loop in bit_range_convert #3996 (by Jesse Yurkovich)
  • build: Fixes to work properly with fmt 10.1 (partial port of #3973)
  • admin: Relicense code under Apache 2.0 #3989