Meloni Dario et al.
1.7.8/ 8 March 2009
Developer's Image Library or DevIL (originally called OpenIL; the name was changed at a request from Silicon Graphics, Inc.), started by Denton Woods, is a cross-platform image library which aims to provide a common API for different image file formats. It consists of three parts: the main library (IL), the utility library (ILU) and the utility toolkit (ILUT), mirroring the corresponding parts of OpenGL (although the OpenGL Utility Toolkit is not part of the OpenGL specification).
DevIL currently supports 43 file formats for reading and 17 for writing; among those with read-write support are BMP, DDS, JPEG, PCX, PNG, RAW, TGA, and TIFF. The actual supported formats depend on compilation settings, in particular, external libraries like libjpeg and libpng.
- Portable, supports Windows, Mac OS X and *nix.
- OpenGL-style syntax.
- Use of image names instead of pointers.
- Full Unicode support for filenames.
- 64-bit compatibility.
- Loading from files, file streams or memory "lumps".
- Direct access to data through ilGetData() and ilSetData().
- Support for luminance, rgb(a), bgr(a) and colour-indexed images.
- Support for 3 different numbers of bits per channel.
- Conversion between all formats and datatypes (including palettes).
- User-defined automatic conversions if desired when loading images.
- Automatic conversion when saving images if needed.
- Automatic conversion of colour-indexed images to truecolour images if desired.
- Controllable compression when saving.
- Maintains a state stack that can be pushed and popped.
- Full support for 3d texture volumes (3d images).
- Validation of images.
- Support for layers.
- Support for mipmaps.
- Support for animations.
- Support for cubemaps.
- User-specified clear colour.
- Can load a default image if loading fails.
- User-specified hints.
- Use of key colours.
- Support for overlaying an image on top of another.
- Allows the user to specify their own loading and saving callbacks, even overriding the default ones.
- Support for user-specified read and write functions.
- Delphi support.
- Visual Basic support.
- Linux support.
- Can pick and choose which features will be used to create smaller dlls.
- Choose whether to use the Intel Jpeg Library or libjpeg.
- A whole host of effects and filters to apply to images, such as embossing and edge detection.
- Images can be resized or even be put on a larger background (enlarged canvas).
- OpenGL, Allegro, Windows GDI and DirectX API support.