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).[1]
Developer(s) | Denton Woods Nicolas Weber Meloni Dario et al. |
---|---|
Initial release | 2001 |
Stable release | 1.8
/ 1 January 2017 |
Repository | |
Operating system | Cross-platform |
Type | Image library |
License | GNU LGPL |
Website | openil |
It was originally called OpenIL; the name was changed at a request from Silicon Graphics, Inc.[2]
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.[3]
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.[4] DevIl is listed in the directory of the Free Software Foundation as Free Software.[5]
Features
- 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()
andilSetData()
. - 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.
See also
References
- "DevIL - A full featured cross-platform Image Library". Openil.sourceforge.net. Retrieved 24 January 2022.
- "SGI Versus "Open*" and All Things "GL"? - Slashdot". Archived from the original on 2014-07-14. Retrieved 2014-06-10.
- "DevIL - A full featured cross-platform Image Library". Openil.sourceforge.net.
- "DevIL - A full featured cross-platform Image Library". Openil.sourceforge.net.
- "Developer's Image Library - Free Software Directory". Directory.fsf.org.