Reference articles on history, science, culture and more
Encyclopedia

DevIL

Developer's Image Library or DevIL, 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).

It was originally called OpenIL; the name was changed at a request from Silicon Graphics, Inc.

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.

On June 9, 2010, Woods announced that he had submitted a request to change the licensing terms from the GNU LGPL to a BSD license. According to the website (as well as the source repository), DevIL is still licensed under the terms of the LGPL. DevIl is listed in the directory of the Free Software Foundation as Free Software.

01Features

  • 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.
Watch videos about DevILExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article DevIL, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.