On Mon, Jun 6, 2016 at 10:51 AM, Mateusz Loskot <[email protected]> wrote:

> On 6 June 2016 at 10:45, Pol Monsó Purtí <[email protected]> wrote:
> >
> > In my case I have a std::vector<GByte*> of the 3 bands,  where the
> GByte* are
> > allocated in the heap with new GByte[width*height].
> > I guess that won't work
> > because the three bands have to be one single memory chunk, am I right?
>
> vector allocates is single continuous block of memory.
> ...or I don't understand the problem.
>

The std::vector has 3 GByte* elements. The three pointers will reside
contiguous, but the memory they are pointing to (containing the R,G and B
data) don't necessarily have to be.

I guess BANDS=3 makes the bands contiguous in memory


>
> > I guess the only solution is to switch to single band float and merge
> rgb to
> > float. I'd prefer not having to refactor the rest of the code. Is it
> > possible to have a different address for each band?
>
> I might not know all GDAL tricks, but I don't think it is possible.
>
> Best regards,
> --
> Mateusz Loskot, http://mateusz.loskot.net
>
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to