Thank you to both Michel and Larry for the replies, shortly after posting we came across the embarrassingly simple solution.
All the best, Colin On 2013-05-31, at 3:01 AM, Michel Lerenard <[email protected]> wrote: > Colin, > quite simple: > for (int i=0; i < spec.nchannels ; i++){ > file->read_scanlines(spec.width, spec.height, 0, i, 1, > spec.format, out_data); > //...do whatever you want with out_data > } > > 'i' tells you need the i-th channel, the 1 after that you want to read only > one channel. > > This snippet reads entire channels one after the other. > > On 05/30/2013 10:48 PM, Larry Gritz wrote: >> You can't request the channels be returned and not interleaved. >> >> But there are varieties of read_scanlines and read_tiles that let you select >> a channel range (including just one channel), so you could do it with one >> call per channel. Look in imageio.h for the calls with "chbegin" and >> "chend" in the argument lists. >> >> >> >> On May 29, 2013, at 5:13 PM, Colin Doncaster wrote: >> >>> Hi there - >>> >>> What is the default buffer layout when using read_image(TypeDesc::FLOAT, >>> data)? It appears to be interleaved channels ( rgbargba... ), if that's >>> the case is it possible to request the data to NOT be interleaved ( >>> rrrrggggbbbb... )? It appears that we can define stride lengths but for >>> dimensions of the whole image, not the channels themselves. >>> >>> Thank you! >> -- >> Larry Gritz >> [email protected] >> >> >> _______________________________________________ >> Oiio-dev mailing list >> [email protected] >> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org > > _______________________________________________ > Oiio-dev mailing list > [email protected] > http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org _______________________________________________ Oiio-dev mailing list [email protected] http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
