Thank you so much, very helpful. Hopefully the last question regarding this. In my actual script I'm iterating through all the external matte channels, seeing if their names collide and giving them new names in case they do.
I was hoping to first create an empty image buf where the image spec has a not-yet-known number of channels. So I was trying to just add a ROI and half float format, but I was unable to write the subimage with the image spec having zero channels (even though I'm adding channels shortly thereafter). My workaround right now is to: matte_buf = ImageBuf(comp.spec()) matte_buf = ImageBufAlgo.channels (matte_buf, (0,)) add all the matte channels and at the very end remove that first channel: matte_buf = ImageBufAlgo.channels (matte_buf, tuple((matte_buf.spec().channelnames[1:]))) Is there a more elegant solution? On Tue, Feb 22, 2022 at 2:35 AM Larry Gritz <l...@larrygritz.com> wrote: > On Feb 21, 2022, at 3:22 PM, Jerome Raim <jerome.r...@gmail.com> wrote: > > > Larry, would you mind terribly boiler-plating some Python code on to > create a single EXR with subimage 0 is RGB and subimage 1 is > matte01,matte02,matte03,matte04 (ie combining the channels of the 2 matte > EXRs). > > > In your original email, you said: out_filepath = '/tmp/exr.rexr' > "rexr" isn't a known extension, and that definitely will cause problems. > But I don't know if that was related to your real issues, or if it was just > a typo in your email. > > But in any case, the following python script does what you asked: > > > #!/usr/bin/env python3 > > import OpenImageIO as oiio > > comp_buf = oiio.ImageBuf("comp-test02-roiMisMatch.exr") > matte_buf = oiio.ImageBuf("matte-test02-roiMisMatch.exr") > matte2_buf = oiio.ImageBuf("matte2-test02-roiMisMatch.exr") > > > combined_matte_buf = oiio.ImageBufAlgo.channel_append(matte_buf, matte2_buf) > > out_filepath = 'exr.exr' > > out = oiio.ImageOutput.create (out_filepath) > if out is None : > print ("Could not create output file: ", oiio.geterror()) > exit(1) > > out.open(out_filepath, (comp_buf.spec(), combined_matte_buf.spec())) > comp_buf.write(out) > out.open(out_filepath, combined_matte_buf.spec(), "AppendSubimage") > combined_matte_buf.write(out) > > out.close() > > > -- > Larry Gritz > l...@larrygritz.com > > > > > _______________________________________________ > Oiio-dev mailing list > Oiio-dev@lists.openimageio.org > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >
_______________________________________________ Oiio-dev mailing list Oiio-dev@lists.openimageio.org http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org