Reading, writing, and processing images in a wide variety of file formats, using a format-agnostic API, aimed at VFX applications.
APACHE-2.0 License
Bot releases are hidden (Show)
Published by lgritz over 3 years ago
Published by lgritz over 3 years ago
Published by lgritz over 3 years ago
(Build related fixes only)
Published by lgritz over 3 years ago
Published by lgritz over 3 years ago
Published by lgritz over 3 years ago
Emergency patch, because nearly simultaneously with this morning's release of 2.2.11.0, newly pushed ASWF Docker containers for VFX Platform 2021 seem to have updated to a slightly newer Qt that marked an old enum we used as deprecated.
Published by lgritz over 3 years ago
oiiotool --help
now prints the OCIO version (where it prints the configinverse
and unpremult
arguments, making itstd::size()
and std::ssize()
OIIO_VERSION_GREATER_EQUAL
andOIIO_VERSION_LESS
. #2831inline constexpr
for C++17, but just constexpr for C++ <= 14. #2832Published by lgritz almost 4 years ago
Published by lgritz almost 4 years ago
Happy New Year!
I have tagged Release-2.2.10.0 and moved the "release" branch marker to this location. This is the latest supported stable release that is guaranteed to be API, ABI, and link backwards-compatible with prior 2.2.x releases.
The tag "v2.2.10.0" has also been added. In 2021, we will be transitioning to this more commonly used tag nomenclature. For the rest of the 2.2 releases, we will issue both old and new tag styles for each release, to give people time to transition any scripts that assume a particular release tag nomenclature. We will also change the release branch development points from RB-x.y to dev-x.y, which I think is more clear about its intent than our nonstandard "RB".
Published by lgritz almost 4 years ago
Published by lgritz almost 4 years ago
chend < chbegin
it should get all channels. #2742-d
to specify the format). #2717Published by lgritz about 4 years ago
This is the latest monthly instalment of the current supported production release series. It is API and ABI compatible with prior 2.2 releases.
--pastemeta
takes two images as arguments, andImageInput.read_image()
ImageOutput.write_scanline()
), "half" pixels ended up mangled intoattribute(name, typedesc, value)
can now beIBA::contrast_remap()
fixes bug that could crash for very large imagesPublished by lgritz about 4 years ago
Note that this is a bug-and-build fix release on the obsolete 2.1 release series.
Published by lgritz about 4 years ago
New minimum dependencies:
New major features and public API changes:
open()
and create()
calls, as well as a new set_ioproxy()
set_write_ioproxy()
method that applies to subsequentwrite
call. #2477 (2.2.1).:subimages=...
ImageBuf.write()
variety added that takes an openImageOutput
. This is the key to writing a multi-subimage file (such--croptofull
and -o
with multi-subimages. #2684 (2.2.6)ParamValueList.attribute()
, when being passed attributes containingImageBufAlgo.color_range_check()
is now available to the PythonImageBuf.write()
that takes an open ImageOutput
.IProxy*
parameter,set_write_ioproxy()
method can supply an IOProxy forwrite()
. #2477 (2.2.1)ImageBuf::setpixel()
methods that use cspan instead of ptr/len.reset()
varieties so that every IB constructor has areset()
with the same parameters and vice versa. #2460repremult()
is like premult, but will not premult when alpha ismax()
and min()
functions take the pixel-by-pixel maximumoiiotool myfile.exr -o out.term
Performance improvements:
Fixes and feature enhancements:
--create
and --proxy
take an additional optional modifier::type=name
that specifies the type of buffer to be created (the-o
optional argument :type=name
is a new (and preferred) synonym:datatype=
. #2414 (2.2.0)--autotrim
now correctly trims to the union of the nonzero regions--subimage
now has an optional :delete=1
modifier that causes theoiiotool --help
) now--eraseattrib
did not correctly apply to all subimages when-a
or :allsubimages=1
were used. #2632 (2.2.4)ImageBuf::getchannel()
did not honor its wrap
parameter.IBA::reorient()
and IBA::computePixelHashSHA1()
did not honornthreads
parameter. #2465 (2.2.1/2.1.12)resample()
has been modified to more closely match resize
by usingImageBuf::get_pixels()
did not honor the stride parameters.resize()
to avoid a crash / stack overflow in certain cases ofmaketx
/IBA::make_texture
: better error detection and messages whenImageSpec::erase_attribute()
did not honor its searchtype
chanstride
Developer goodies / internals:
as_vec<>
method returns the whole attribute as a std::vector.write_text_file()
convenience function for opening, writing, andfast_sin
, fast_cos
#2495 (2.1.12/2.2.2)safe_fmod()
is faster than std::fmod. #2495 (2.1.12/2.2.2)fast_neg
is faster than simple negation in many cases, if youclamp()
. #2617 (2.2.4)OIIO_MAKE_VERSION(maj,min,patch)
macro that constructs theParamValueList::find_pv()
method that is similar to find()
butget_indexed()
method to ParamValueList and AttrDelegate. #2526OIIO_PRETTY_FUNCTION
definition is more robust for weird compilers__FUNCTION__
if all else fails). #2413 (2.2.0)OIIO_ALIGN
definition is more robust, will fall back to C++11OIIO_PRAGMA_...
macros have been added to help dealnormalize()
, length()
, and length2()
std::vector
to allow vectors with customStrutil::concat()
and ustring::concat()
concatenate twosprintf("%s%s")
by avoiding anyto_lower
and to_upper
, but not in-placeStrutil::repeat()
has been internally rewritten to more efficient bysize()
after erase()
. #2624 (2.2.4)boost::thread_specific_ptr
with C++11thread_local
. #2431 (2.2.0)Build/test system improvements and platform ports:
EXTRA_WARNINGS
, when turned on, willREQUIRED_DEPS
(list of dependencies normally optionalOPTIONAL_DEPS
(list ofOpenImageIO_PLUGIN_SEARCH_PATH
#2584 (2.1.16/2.2.3)src/build-scripts/build_pybind11.bash
is#define
farmhash
functions have been cleaned up to be more careful that nonefmt
on its own. #2498.build_foo.bash
helper scripts now use set -ex
to ensureOPENIMAGEIO_FOUND
-> OpenImageIO_FOUND
. #2578 (2.2.3)"\\?\"
style). #2661 (2.1.19/2.2.6)Notable documentation changes:
LICENSE-THIRD-PARTY.md
file has been reorganized to be clearer,git config blame.ignoreRevsFile .git-blame-ignore-revs
Published by lgritz about 4 years ago
"\\?\"
style). #2661Published by lgritz about 4 years ago
Release candidate for 2.2. The branch is frozen for release. If no critical bugs are identified, we anticipate a full release on Sept 1, 2020.
Published by lgritz about 4 years ago
Second and hopefully last 2.2 beta, with some minor fixes and last-minute additions (but none that break compatibility).
Published by lgritz about 4 years ago
Immediately after releasing 2.1.18.0, it was discovered to still be reporting itself as 2.1.17. Quickly pushing out an update that only changes the reported version number itself.
Published by lgritz about 4 years ago
We have now branched for a 2.2 release (for reference, 2.1 was released in December, 2019). Please be aware of the following:
We have tagged "Release-2.2.4.0-beta" as the first beta release of the 2.2 family. (Note that the version numbers designated 2.2.0-2.2.3 were earlier developer snapshots.)
The branch marker RB-2.2 is the tip of development/merging of future 2.2.x releases, which may add features destined for later 2.2.x patch releases, but (certainly after the beta period is over) will avoid any changes that break backwards API, ABI, or linkage compatibility within the 2.2 family.
Henceforth, 'master' will be home to development for future releases (presumed 2.3?), and thus makes no guarantees at all about compatibility breaks.
My goal is to have a "beta" period of about two weeks for last minute changes, then one or more "release candidates", culminating in a final official 2.2 release on or close to August 1.
I strongly encourage you to test the beta while there is plenty of time to change things before a release. Please let us know if you find any bugs or build problems.
After the official 2.2 release, further patches to the 2.1 family will start to tail off, becoming more conservative and only including the most critical or specifically requested fixes.
The preliminary release notes (subject to revision before final release) are as follows:
New minimum dependencies:
New major features and public API changes:
open()
and create()
calls, as well as aset_ioproxy()
method in these classes. ImageBuf similarly can specifyset_write_ioproxy()
method that applies to subsequent write
call.ParamValueList.attribute()
, when being passed attributes containingImageBufAlgo.color_range_check()
is now available to the PythonImageBuf.write()
that takes an open ImageOutput
.IProxy*
parameter,set_write_ioproxy()
method can supply an IOProxy forwrite()
. #2477 (2.2.1)ImageBuf::setpixel()
methods that use cspan instead of ptr/len.reset()
varieties so that every IB constructor has areset()
with the same parameters and vice versa. #2460repremult()
is like premult, but will not premult when alpha ismax()
and min()
functions take the pixel-by-pixel maximum:subimages=...
oiiotool myfile.exr -o out.term
Performance improvements:
Fixes and feature enhancements:
--create
and --proxy
take an additional optional modifier::type=name
that specifies the type of buffer to be created (the-o
optional argument :type=name
is a new (and preferred) synonym:datatype=
. #2414 (2.2.0)--autotrim
now correctly trims to the union of the nonzero regions--subimage
now has an optional :delete=1
modifier that causes theoiiotool --help
) now--eraseattrib
did not correctly apply to all subimages when-a
or :allsubimages=1
were used. #2632 (2.2.4)ImageBuf::getchannel()
did not honor its wrap
parameter.IBA::reorient()
and IBA::computePixelHashSHA1()
did not honornthreads
parameter. #2465 (2.2.1/2.1.12)resample()
has been modified to more closely match resize
by usingImageBuf::get_pixels()
did not honor the stride parameters.resize()
to avoid a crash / stack overflow in certain cases ofmaketx
/IBA::make_texture
: better error detection and messages whenImageSpec::erase_attribute()
did not honor its searchtype
chanstride
Developer goodies / internals:
as_vec<>
method returns the whole attribute as a std::vector.write_text_file()
convenience function for opening, writing, andfast_sin
, fast_cos
#2495 (2.1.12/2.2.2)safe_fmod()
is faster than std::fmod. #2495 (2.1.12/2.2.2)fast_neg
is faster than simple negation in many cases, if youclamp()
. #2617 (2.2.4)OIIO_MAKE_VERSION(maj,min,patch)
macro that constructs theParamValueList::find_pv()
method that is similar to find()
butget_indexed()
method to ParamValueList and AttrDelegate. #2526OIIO_PRETTY_FUNCTION
definition is more robust for weird compilers__FUNCTION__
if all else fails). #2413 (2.2.0)OIIO_ALIGN
definition is more robust, will fall back to C++11OIIO_PRAGMA_...
macros have been added to help dealnormalize()
, length()
, and length2()
std::vector
to allow vectors with customStrutil::concat()
and ustring::concat()
concatenate twosprintf("%s%s")
by avoiding anyto_lower
and to_upper
, but not in-placeStrutil::repeat()
has been internally rewritten to more efficient bysize()
after erase()
. #2624 (2.2.4)boost::thread_specific_ptr
with C++11thread_local
. #2431 (2.2.0)Build/test system improvements and platform ports:
EXTRA_WARNINGS
, when turned on, willREQUIRED_DEPS
(list of dependencies normally optionalOPTIONAL_DEPS
(list ofOpenImageIO_PLUGIN_SEARCH_PATH
#2584 (2.1.16/2.2.3)src/build-scripts/build_pybind11.bash
is#define
farmhash
functions have been cleaned up to be more careful that nonefmt
on its own. #2498.build_foo.bash
helper scripts now use set -ex
to ensureOPENIMAGEIO_FOUND
-> OpenImageIO_FOUND
. #2578 (2.2.3)Notable documentation changes:
LICENSE-THIRD-PARTY.md
file has been reorganized to be clearer,Published by lgritz about 4 years ago
ImageBuf.write()
added a variety that takes an open ImageOutput.oiiotool --eraseattrib
fixed: was not applying to all subimages. #2632OIIO_MAKE_VERSION
macro that constructs the