[gdal-dev] Interleave Bands with RasterIO?
craig.miller at spatialminds.com
craig.miller at spatialminds.com
Sat Oct 18 20:20:41 EDT 2008
I have a BGRA buffer in memory, and a multi-band RGBA TIF image. Is it possible to use RasterIO to read in values from each band and neatly interleave them in my buffer.
For example if I was loading an RGBA image I am hoping to be able to make 4 separate RasterIO calls.
Assuming a BGRA image looks like:
0 - blue byte
8 - green byte
16 - red byte
24 - alpha byte
32 - blue byte
40 - green byte
48 - red byte
56 - alpha byte
64 - ....
The first RasterIO call would read in the blue values and insert them at 0, 32, 64, etc making it look like:
0 - blue byte
8 -
16 -
24 -
32 - blue byte
40 -
48 -
56 -
64 - ....
The second RasterIO call would read the green values and insert them at 8, 40, etc making it look like:
0 - blue byte
8 - green byte
16 -
24 -
32 - blue byte
40 - green byte
48 -
56 -
64 - ....
Rinse and repeat for red and alpha.
Is this possible, or is there a much much simpler way that I'm overlooking? I've been looking at the paramaters for RasterIO but can't seem to get it to work. I do understand that I can just read the values into a separate buffer and memcpy them over to my image buffer. I was trying to minimize the total number of times the same data has to be copied.
Thanks for the help.
Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/gdal-dev/attachments/20081019/c66a4740/attachment.html
More information about the gdal-dev
mailing list