IM - An Imaging Tool


IM is a toolkit for Digital Imaging. IM is based on 4 concepts: Image Representation, Storage, Processing and Capture. Image Visualization is a task that it is left for a graphics library.

It provides support for image capture, several image file formats and many image processing operations. The most popular file formats are supported: TIFF, BMP, PNG, JPEG, GIF and AVI.

Image representation includes scientific data types (like IEEE floating point data) and attributes (or metadata like GeoTIFF and Exif tags). Animation, video and volumes are supported as image sequences, but there is no digital audio support.

The main goal of the library is to provide a simple API and abstraction of images for scientific applications.

The toolkit API is written in C. The core library source code is implemented in C++ and it is very portable, it can be compiled in Windows and UNIX with no modifications. New image processing operations can be implemented in C or in C++.

IM is free software, can be used for public and commercial applications.

IM has been used in Tecgraf for many theses and dissertations. Check the Publications in Tecgraf's web site


The library is available for several compilers:

  • GCC and CC, in the UNIX environment
  • Visual C++, Borland C++, Watcom C++ and GCC (Cygwin and MingW), in the Windows environment

The library is available for several operating systems:

  • UNIX (SunOS, IRIX, AIX, FreeBSD and Linux)
  • Microsoft Windows NT/2K/XP


The official support mechanism is by e-mail, using [email protected]. Before sending your message:

  • Check if the reported behavior is not described in the user guide.
  • Check if the reported behavior is not described in the specific format characteristics.
  • Check the History to see if your version is updated.
  • Check the To Do list to see if your problem has already been reported.

After all of the above have been checked, report the problem, including in your message: function, element, format, platform, and compiler.

We host IM support features at LuaForge. It provides us Tracker, Lists, News, CVS and Files. The IM page at LuaForge is available at:

The discussion list is available at:
You can also submit Bugs, Feature Requests and Support Requests at:
Source code, pre-compiled binaries and samples can be downloaded at:
The CVS can be browsed at:

If you want us to develop a specific feature for the toolkit, Tecgraf is available for partnerships and cooperation. Please contact [email protected].

Lua documentation and resources can be found at


This work was developed at Tecgraf by means of the partnership with PETROBRAS/CENPES.

Thanks to the people that worked in the library:

  • Marcelo Gattass and Luiz Henrique Figueiredo
  • Antonio Scuri
  • Antonio Nabuco Tartarini
  • Diego Fernandes Nehab
  • Erick de Moura Ferreira
  • Carolina Alfaro

We also thank the developers of the third party libraries:

  • Sam Leffler (libTIFF author)
  • Frank Warmerdam, Andrey Kiselev, Mike Welles and Dwight Kelly (libTIFF actual maintainers)
  • Thomas Lane (libJPEG)
  • Lutz Müller (libExif)
  • Glenn Randers-Pehrson (libPNG)
  • Jean-loup Gailly and Mark Adler (zlib)
  • Gershon Elber (GIFLib)
  • Michael Adams (libJasper)
  • Svein Bøe, Tor Lønnestad and Otto Milvang (XITE)
  • Jason Perkins (Premake)
  • Marc Alexander Lehmann (libLZF)
  • (to many others that contribute to these library, keeping them free and updated)

The IM toolkit distribution includes the some third party libraries that are not developed by Tecgraf. Their license are also free and have the same freedom as the Tecgraf Library License. You can read the respective licenses in the files: zlib.txt, libpng.txt, libjpeg.txt, libtiff.txt, libjasper.txt, liblzf.txt.


This toolkit is available at

The full documentation can be downloaded from the Download by choosing the "Documentation Files" option.

The documentation is also available in Adobe Acrobat (im.pdf ~900Kb) and Windows HTML Help (im.chm ~400Kb) formats.

The HTML navigation uses the WebBook tool, available at

The library Reference documentation is generated by Doxygen ( ).