mathr / blog / #

Exrtact

In the last months, after adding EXR support to KF, I worked on some tools to help process the output data. Most imagery software only expects RGB(A) or maybe YUV images, and even so I had to submit a patch to DarkTable to get it to ignore any extra channels. My tools have a website here:

mathr.co.uk/exrtact

So far there are three tools, a simple channel extractor (which needs more work to be truly useful), a preview extractor (which is fine for what it does), and a tile assembler. The tile assembler has two modes, one for side by side images (as is normal), and a "stratified" mode that interleaves pixels of slightly-offset images (as rendered by KF in one of its tiling modes). I had a nightmare debugging that because I forgot that "enable guessing" in KF combined with "log de" colouring is not a sufficiently accurate approximation for smooth colours - turned off guessing and the grid-like subtile artifacts disappeared.

I had to add channel filtering to the pipeline, because an EXR file at 64000x36000 with all the raw channels from KF would be over 50GB, much more RAM than I have. I added the filter to exrtactile because it was easier, but I should add a filter to KF too, to avoid saving data that isn't wanted. Even so, the image dimensions were too large for most of the software I tried, but downscaling to 16000x9000 with ImageMagick let me load it in DarkTable. I had to free up some space for the pixel cache of ImageMagick too, the first attempt failed with disk full.