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();
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.