Boost logo

Boost Users :

From: N L (rotoglup_at_[hidden])
Date: 2008-04-06 06:51:40


Hi everyone,

I'm currently setting up an image processing pipeline for large (out of
core) GIS images using GIL.

I'm quite glad with the results I get right now, but I stumbled upon a
problem with the default image_view size / iterator handling.

Currently, image_view::size_type is defined as std::size_t, and
image_view::end is implemented as
begin()+(difference_type)size<http://stlab.adobe.com/gil/html/structboost_1_1gil_1_1size.html>
();

As my images pixel count exceed the max value of std::size_t on my dev
platform (win32), the image_view::end member function fails to give a valid
iterator...

As nearly every types defined in image_view are given by the templated
locator type, I'm thinking that the size_type should not be an exception,
and should be given by the locator type.

I also tend to think that the 'image iterators' should not share the
difference_type type with the '1D iterators' - but these are mainly
performance considerations in my case, as my image iterators should be
64bits, and my 1d iterators can be 32 bits.

For now, I changed my GIL working copy to patch image_view definition, as I
did not see any way to work around the iterator problem. Did I miss anything
? Is there any user-level workaround I could use, or should the image_view
class be modified ?

Any thoughts would be welcome :)
Thanks,

Nicolas.



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net