Welcome to the Adobe Generic Image Library (GIL)
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.
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.
June 17, 2007 - GIL 2.1 released. Added support for non-byte-aligned pixels (examples: 6-bit RGB222, or 1-bit grayscale). Detailed release notes are available here.
March 27, 2007 - Minor patch released. GIL regression test improvements. Removed any external dependencies from the regression tests. Minor bug fixes in GIL.
March 8, 2007 - GIL 2.0 Released. Major GIL release. Includes further Boost integration and improved design of channels, pixels and images.
See what is new here.
January 3, 2007 - Minor patch. We added back the ability to assign a channel to a grayscale pixel and fixed some minor issues with
color converted views of dynamic images.
September 15, 2007 - GIL 2.1.1 released. This is a bug fixing release and includes minor API changes to make the interfaces more consistent.
Detailed release notes are available here.
November 7, 2006 - GIL was accepted to Boost. GIL's Boost review was successful and GIL will be
part of the Boost libraries. It will most likely first appear in the 1.35 version of Boost. In the future our web page will
continue to provide you with the latest improvements to GIL, as we have the flexibility to release more frequently than Boost.