FreeImage is an Open Source library project for developers who would like to support popular graphics image formats in their software.
FreeImage libraries are available in both binary and source distributions.
Here are some key features of "FreeImage":
Supports many formats, such as:
· BMP files [reading, writing]
· DDS files [reading]
· Dr. Halo files [reading] *
· GIF files [reading, writing]
· HDR files [reading, writing]
· ICO files [reading, writing]
· IFF files [reading]
· JBIG [reading, writing] **
· JNG files [reading]
· JPEG/JIF files [reading, writing]
· KOALA files [reading]
· LBM files [reading]
· Kodak PhotoCD files [reading]
· MNG files [reading]
· PCX files [reading]
· PBM files [reading, writing]
· PGM files [reading, writing]
· PNG files [reading, writing]
· PPM files [reading, writing]
· PhotoShop files [reading]
· Raw Fax G3 files [reading]
· SGI files [reading]
· Sun RAS files [reading]
· TARGA files [reading, writing]
· TIFF files [reading, writing]
· WBMP files [reading, writing]
· XBM files [reading]
· XPM files [reading, writing]
* only grayscale
** only via external plugin, might require a commercial license
· Not limited to the local PC. The unique FreeImageIO structure makes it possible to load your images from virtually anywhere. Possibilities include standalone files, memory, cabinet files and the Internet, all this without recompiling the library!
· Plugin driven. The internal engine is made completely modular using a clever plugin system. Easily write new plugins and store them in DLL files or embed the plugins directly into your application!
· Color conversion. FreeImage provides many functions to convert a bitmap from one bitdepth to another. The library supports 1-, 4-, 8-, 16, 24- and 32-bit images, as well as integer, real and complex images.
· Support for High Dynamic Range images. FreeImage supports RGB float images as well a 48-bit HDR images and provides tone mapping operators to convert these images to 24-bit LDR images.
· Directly access bitmap bits and palette. Functions are provided which allow you to directly access the bitmap palette (if available) and bitmap bits.
· Metadata support. Parse common metadata models attached to your bitmap. FreeImage supports Comments, Exif (including GPS and maker notes), IPTC, Adobe XMP and GeoTIFF metadata models.
· Written in portable C++, should compile on all 32-bit Windows, Linux and Mac OSX systems. Full source code is provided.
· Open Source Dual-License. You can choose the license that has the most advantages for you: Use the liberal FreeImage Public License to use FreeImage commercially or the GNU General Public License to use FreeImage into your open source project.
· Easily integrates into DirectX and OpenGL. Only a minimum of programming is necessary to store a FreeImage bitmap into a DirectDraw surface or to use FreeImage to load your Direct3D/OpenGL textures.
· Provides basic image manipulation routines such as rotation, resizing, flipping or color adjustments, as well as lossless JPEG transformations.
· Provides test programs to "show-off" the library, compilable and startable on Windows 95, 98, NT, 2000 or on Linux.
What's New in This Release: [ read full changelog ]
· FreeImage now uses libPNG 1.2.35
· FreeImage now uses libTIFF 3.9.0beta (CVS patch 2009-02-12)
· FreeImage now uses OpenJPEG 1.3.0 (SVN patch 2008-08-21)
· [Herve Drolon] FreeImage_CloneMetadata no longer clone the FIMD_ANIMATION metadata (this was causing problems when saving to GIF format)
· [Herve Drolon] added full support for the PFM format
· [Herve Drolon] added JPEG_EXIFROTATE load flag to the JPEG plugin
· [Herve Drolon] added 16-bit RGB(A) and float RGB(A)F support to FreeImage_GetChannel / FreeImage_SetChannel
· [Herve Drolon] added src FIT_RGBA16 to dst 32-bit FIT_BITMAP conversion to FreeImage_ConvertToType
· [Carsten Klein] FreeImage_Copy now copies transparency info, resolution info, ICC profile and metadata
· [Carsten Klein] check for negative top/left values in FreeImage_Paste
· [Christian Heimes] changed exceptions with a "catch(char *text)" to a "catch(const char *text)" to make GCC 4.1 happy
· [Deif Lou] fixed a bug in FreeImage_SetTransparentIndex
· [Thomas Maiwald] BMP plugin: on saving, fixed correct setting of bfSize BMP file header for palettized images
· [Timothy Lee] fixed handling of frame disposal in GIF_PLAYBACK mode (GIF plugin)
· [Herve Drolon] fixed handling of Exif Olympus Type 2 maker notes (not yet supported but now safely ignored)
· [Rich Geldreich] fixed DXT1 color endpoint precision problem in DDS plugin
· [Mihail Naydenov] improved loading speed of 24-bit targa images
· [Eugene Golushkov] improved big endian / little endian swapping functions
· [Carsten Klein/Jean-Philippe Goerke] improved FreeImage_SetMetadata / FreeImage_GetMetadata accessors
· [Christian Ruppert] improved Linux Makefiles
· [Eugene Golushkov] fixed PluginBMP alignment bug while saving 16 or 24bit BMP on big endian or Apple machines