OK I think I got it to work. ImageBufAlgo.channels() operation was crashing when I was preemptively setting the .specmod().tile_width/height to 0 but it seems to work when I set it afterwards. Thanks for pointing me in the right direction!
On Tue, Apr 12, 2022 at 11:34 AM Jerome Raim <jerome.r...@gmail.com> wrote: > Hi Daniel, > I appreciate the speedy response! I was a little weary of specmod() due to > the warning "It is safe to modify certain metadata, but if you change the > data format or resolution fields, you will get the chaos you deserve". > > I tried using in a few places but it either yields the same tiled image or > I get a "OpenEXR exception: Cannot initialize output part "1". Can't build > a OutputFile from a type-mismatched part." > > ...Getting closer. > > On Tue, Apr 12, 2022 at 11:19 AM Daniel Flehner Heen < > flehnerhee...@gmail.com> wrote: > >> Hi, Jerome! >> >> I ran into the same issue a couple of weeks back. >> Don't know if this is the best way, but setting the tile width and height >> to 0 directly on the ImageSpec worked for me. >> So before out.open(): >> >> # I created/adjusted the specs in advance and referenced them for each >> subimage, but this might work (as proof of concept). >> comp_buf.specmod().tile_width = 0 >> comp_buf.specmod().tile_height = 0 >> matte_buf.specmod().tile_width = 0 >> matte_buf.specmod().tile_height = 0 >> >> open1 = out.open(out_filepath, (comp.spec(), matte_buf.spec())) >> ... >> >> >> >> >> On Tue, Apr 12, 2022 at 5:06 PM Jerome Raim <jerome.r...@gmail.com> >> wrote: >> >>> Hello, >>> I am combining multiple channels from various EXRs into a single >>> multi-image EXR. >>> >>> I am using set_write_tiles (0, 0) but the resulting EXR is still being >>> read as tiled. >>> >>> Code looks something like this: >>> >>> out = ImageOutput.create(out_filepath) >>> >>> open1 = out.open(out_filepath, (comp.spec(), matte_buf.spec())) >>> comp.set_write_tiles (0, 0) >>> comp.write(out) >>> >>> open2 = out.open(out_filepath, matte_buf.spec(), "AppendSubimage") >>> matte_buf.set_write_tiles (0, 0) >>> matte_buf.write(out) >>> >>> out.close() >>> >>> As always, thank you so much for a great library and knowledgeable help. >>> >>> Best, >>> Jerome >>> _______________________________________________ >>> Oiio-dev mailing list >>> Oiio-dev@lists.openimageio.org >>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org >>> >> >> >> -- >> -Daniel >> _______________________________________________ >> 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