Hi Kora,
the IlmImf library does not allow writing the file channel by channel;
all channels must be written at the same time. The OpenEXR file layout
would channel-by-channel writing very inefficient.
However, you can write a few scanlines at a time or a few tiles at a
time; your frame buffer only has to be large enough to hold the portion
of the image you are writing. (In the extreme, a single scan line or
a single tile is enough.)
Florian
Koraxen wrote:
Hey guys,
I have a question regarding how to deal memory consumption and
multi-layered EXR files.
I need to write an EXR file that contains 10 different versions of a
same high res (5120 x 2880) image. This translates into an EXR file that
contains 10 layers x 4 channels = 40 channels.
What I am doing is:
1. Instantiate an exr framebuffer
2. Allocate memory for 40 high-res channels, and insert() them all into
framebuffer
3. Instantiate OutputFile object, and set the framebuffer to it
4. Write the OutputFile
The problem is that host system obviously runs out of memory during step #2.
What's needed here is the ability to:
- Insert a channel to framebuffer
- Write it to disk
- Free memory
- Repeat 40 times
- End up with a *single* EXR file containing 40 channels
How can this be done?
Thanks a ton!
- Kora
------------------------------------------------------------------------
_______________________________________________
Openexr-devel mailing list
Openexr-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/openexr-devel
_______________________________________________
Openexr-devel mailing list
Openexr-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/openexr-devel