Hey!

Sorry about the confusing title!

I'm dealing with a small issue and I'm curious to know if either oiiotool
or the Python binding of OpenImageIO can help me do what I want...

I've got EXR images with lots of channels (~50 -- cryptomatte and all)
rendered in regions, but the buffer is the full resolution.

So you can split it in tiles, and they can be uneven -- 5 rows and 7
columns for example.

I didn't think it was possible to do it through oiiotool, but I've managed
to do with I wanted with the Python Binding so far, but it hasn't been as
efficient as I thought it would be...

My pseudo code would go as follow :

final_image_buffer = OpenImageIO.ImageBuffer(full_frame_spec)
for tile_file_path, rect in tile_file_paths:
        tile_image_buffer = OpenImageIO.ImageBuf(tile_file_path)
        roi_cropped = OpenImageIO.ROI(*rect) # it's like (xbegin, xend, ybeing, 
yend)
        OpenImageIO.ImageBufAlgo.copy(final_image_buffer, tile_image_buffer,
roi=roi_cropped)

final_image_buffer.write(output_path)

Now that works pretty well, like I said, but it is very slow. Eventually
that might not be that big of a deal when it goes on better farm machines
than my development toaster oven, but is there anything obvious that I'm
missing? Would oiiotool be able to deal with this more efficiently?

Thanks!
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to