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

Reply via email to