Generic Image Library
Images are a fundamental construct in any project that involves graphics, image processing, and video and yet the variability in pixel data representations (color space, bit depth, channel ordering, planar/interleaved, alignment policy) makes it hard to write imaging-related code that is both generic and efficient. Generic Image Library (GIL) is a C++ generic library which allows for writing generic imaging algorithms with performance comparable to hand-writing for a particular image type. The library is designed with the following five goals in mind:
- Generality: Abstracts image representations from algorithms on images. It allows for writing code once and having it work for any image type.
- Performance: Speed has been instrumental to the design of the library. The generic algorithms provided in the library are comparable in speed to hand-coding the algorithm for a specific image type.
- Flexibility: Compile-type parameter resolution results in faster code, but severely limits code flexibility. The library allows for any image parameter to be specified at run time (for a minor performance cost comparable to a virtual call overhead).
- Extensibility: GIL is concept-based and allows virtually every component - channels, color spaces, pixels, pixel iterators, locators, views, images and algorithms - to be replaced.
- Compatibility: The library is designed as an STL and Boost complement. Generic STL algorithms can be used for pixel manipulation, and they are especially optimized. The library works natively on existing raw pixel data.
(2007/09/15 | Generic Image Library)
This is a bug fixing release and includes minor API changes to make the interfaces more consistent. Detailed [release notes|http://sourceforge.net/forum/forum.php? …
(2007/06/17 | Generic Image Library)
Added support for non-byte-aligned pixels (examples: 6-bit RGB222, or 1-bit gray scale). Detailed release notes are available.