Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Developer's Image Library (DevIL) is a programmer's library to develop applications with very powerful image loading capabilities, yet is easy for a developer to learn and use.
C Shell C++ Python Visual Basic Component Pascal Other
tree: edef0fb211
Failed to load latest commit information.
bin Import to git
build-aux Import to git
cmake Updated cmake macros
data Import to git
docs Import to git
examples Import to git
include/IL Import to git
lib Import to git
m4 Import to git
projects Import to git
src-IL Import to git
src-ILU Import to git
src-ILUT Import to git
test Import to git
.travis.yml Updated travis hook
AUTHORS Import to git
CMakeLists.txt Updated cmake macros
COPYING Import to git
CREDITS Import to git
ChangeLog Import to git
INSTALL Import to git
Libraries.txt Import to git
MSVC++.txt Import to git Import to git Import to git
NEWS Import to git
README Import to git
README.macosx Import to git
README.unix Import to git Import to git
TODO Import to git
aclocal.m4 Import to git
config.h.cmake Import to git
configure Import to git Import to git
configure.bat Import to git Updated cmake macros Import to git
missing Import to git


Developer's Image Library version 1.7.8 Readme, Notes and Quick Use

<DZA[afk]> DevIL song: "la la la, a cross-platform image library utilizing a
           simple syntax to load, save, convert, manipulate, filter and display
           a variety of images with ease, la la la"

What is it?

DevIL is an Open Source image library whose distribution is done under the
terms of the GNU LGPL license. See the COPYING file for more details.
DevIL offers you a simple way to implement loading, manipulating, filtering,
converting, displaying, saving from/to several different image formats in your
own project.

Where can I find it?

DevIL can be found at

How do I build and install the 3 libraries ?

*nix    users should read README.unix
VisualC users should read
Cygwin  users should read README.cygwin
MacOSX  users should read README.macosx

PS: *nix stands for GNU/Linux, *BSD, SunOS/Solaris and perhaps some more.

More Extensive Documentation

This file is only a quick guide to point you to more detailed information on
how to use DevIL.  More extensive documentation can currently be found on the
DevIL site at and in the /Docs directory in a normal

Why the hell another image library?

I have never seen an image library that can do everything DevIL does.  Sure,
various different libraries can do part of what DevIL can do as well or even
better, but I wanted a simple to use library that encompassed all of these
features.  I also wanted an extremely portable image library that could be used
from a variety of languages and utilized the OpenGL syntax.

Basic Readme

Most anything stated in this document applies to DevIL as well as DevILU and
DevILUT, unless otherwise stated. (This file is best viewed with word wrap on.)


All errors generated inside DevIL, along with illegal parameters passed to
DevIL functions are caught and passed to ilSetError(), an internal library
function.  The calling program can call ilGetError() to get the value of the
error generated.  Error types are defined in il.h, using the 0x501 - 0x5FF
range.  ilGetError() will return 0 (IL_NO_ERROR) if no error has occurred.

Basic Usage:

This demonstrates loading an image through DevIL for OpenGL. Don't forget to 
call ilInit before you before you do anything:

#include <IL/il.h>
#include <IL/ilu.h>
#include <IL/ilut.h>


ILuint devilError;


devilError = ilGetError();

if (devilError != IL_NO_ERROR) {
  printf ("Devil Error (ilInit: %s\n", iluGetErrorString (devilError));
  exit (2);


ILuint devilID;

ilGenImages(1, &devilID);
ilLoadImage("default1.tga");  // Loads into the current bound image
devilError = ilGetError();

if (devilError != IL_NO_ERROR) {
  printf ("Devil Error (ilLoadImage: %s\n", iluGetErrorString (devilError));
  exit (2);


ilutRenderer(IL_OPENGL);  // Switch the renderer


GLuint openglID, openglError;

openglID   = ilutGLBindTexImage(); // This generates the texture for you
devilError = ilGetError();

if (devilError != IL_NO_ERROR) {
  printf ("Error: %s\n", iluGetErrorString (devilError));
  exit (2);

if (openglError != GL_NO_ERROR) {
  printf ("Opengl Error (ilutGLBindTexImage): %s\n", gluGetErrorString (openglError));
  exit (2);

// Make sure to close the image when you are done with it (though DevIL
// automatically deletes them when the program exits):

glDeleteTextures(1, &openglID);
ilDeleteImages  (1, &devilID);

More Examples:

The TestIL project is included to test features of DevIL.

DevIL includes a project called GLTest.  This is a simple test of DevIL's
capabilities.  All it does it load any image and displays it in a window
created by FreeGlut, which is available on It
is also included to let the user have an idea of what the library can really
be used for.

Several other test projects are included to test support with various display
APIs.  The WindowsTest project is a basic image program that only runs in
Windows right now but showcases several of DevIL's features through various

If you want more in-depth tutorials, you can find them on, or they may be in your installation under the /examples
directory.  Documents are also available in the /docs directory.

Additional Reading

All image formats used in DevIL have corresponding documents on, under the Graphics Files section.  These documents
proved invaluable for the creation of this library when there was no library
already available for that image format.


All contents of this file are intellectual property of Denton Woods,
copyright 2001-2008.
Something went wrong with that request. Please try again.