Capturing libraw output as if PGM/PPM data
Some code I am working on uses file i/o redirection and calls the old dcraw under the covers.
Depending on the processing options passed to dcraw, the ouput is passed to the code by the following:
// Intercept the fprintf calls in write_ppm_tiff() for PGM/PPM file output.
int Printf(const char *format, va_list va) // intercepts the fprintf calls in write_ppm_tiff()
nResult = strText.GetLength();
// Intercept the fwrite calls in write_ppm_tiff()
size_t Write (const void *buffer, size_t size, size_t count)
I would like conceptually to do the same sort of thing using libraw but without the need to use the i/o re-direction.
I can (I think) determine whether the data is for PGM or PPM based upon imgdata.idata.colors, and the image rows/columns from imgdata.sizes. I'm not so clear where I can locate the output_bps (to use dcraw terminology).
What I don't know is the best way to get at the image data itself. I assume that I need to call LibRaw::unpack() and then LibRaw::dcraw_process() but I'm bit puzzled as what I do after that.
Thanks in advance