[GIL] image_view::size_type and out of core images on 32 bits platforms

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)sizehttp://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.
participants (1)
-
N L