IM: im_lib.h Source File

IM - An Imaging Tool

im_lib.h

Go to the documentation of this file.
00001 /** \file
00002  * \brief Library Management and Main Documentation
00003  *
00004  * See Copyright Notice in this file.
00005  */
00006 
00007 #ifndef __IM_LIB_H
00008 #define __IM_LIB_H
00009 
00010 #if defined(__cplusplus)
00011 extern "C" {
00012 #endif
00013 
00014       
00015 /** \defgroup lib Library Management
00016  * \ingroup util 
00017  * \par
00018  * Usefull definitions for about dialogs and 
00019  * for comparing the compiled version with the linked version of the library.
00020  * \par
00021  * \verbatim im._AUTHOR [in Lua 5] \endverbatim
00022  * \verbatim im._COPYRIGHT [in Lua 5] \endverbatim
00023  * \verbatim im._VERSION [in Lua 5] \endverbatim
00024  * \verbatim im._VERSION_DATE [in Lua 5] \endverbatim
00025  * \verbatim im._VERSION_NUMBER [in Lua 5] \endverbatim
00026  * \verbatim im._DESCRIPTION [in Lua 5] \endverbatim
00027  * \verbatim im._NAME [in Lua 5] \endverbatim
00028  * \par
00029  * See \ref im_lib.h
00030  * @{
00031  */
00032 #define IM_AUTHOR "Antonio Scuri"
00033 #define IM_COPYRIGHT "Copyright (C) 1994-2007 Tecgraf/PUC-Rio and PETROBRAS S/A"
00034 #define IM_VERSION "3.3.0"
00035 #define IM_VERSION_NUMBER 303000
00036 #define IM_VERSION_DATE "2007/11/26"
00037 #define IM_DESCRIPTION "Image Representation, Storage, Capture and Processing"
00038 #define IM_NAME "IM - An Imaging Toolkit"
00039 /** @} */
00040 
00041 
00042 /** Returns the library current version. Returns the definition IM_VERSION.
00043  *
00044  * \verbatim im.Version() -> version: string [in Lua 5] \endverbatim
00045  * \ingroup lib */
00046 const char* imVersion(void);
00047 
00048 /** Returns the library current version release date. Returns the definition IM_VERSION_DATE.
00049  *
00050  * \verbatim im.VersionDate() -> date: string [in Lua 5] \endverbatim
00051  * \ingroup lib */
00052 const char* imVersionDate(void);
00053 
00054 /** Returns the library current version number. Returns the definition IM_VERSION_NUMBER. \n
00055  * Can be compared in run time with IM_VERSION_NUMBER to compare compiled and linked versions of the library.
00056  *
00057  * \verbatim im.VersionNumber() -> version: number [in Lua 5] \endverbatim
00058  * \ingroup lib */
00059 int imVersionNumber(void);
00060 
00061 
00062 #if defined(__cplusplus)
00063 }
00064 #endif
00065 
00066 
00067 /*! \mainpage IM
00068  * <CENTER>
00069  * <H3> Image Representation, Storage, Capture and Processing </H3>
00070  * Tecgraf: Computer Graphics Technology Group, PUC-Rio, Brazil \n
00071  * http://www.tecgraf.puc-rio.br/im \n
00072  * mailto:[email protected]
00073  * </CENTER>
00074  *
00075  * \section over Overview
00076  * \par
00077  * IM is a toolkit for Digital Imaging. 
00078  * \par
00079  * It provides support for image capture, several image file formats and many image processing operations. 
00080  * \par
00081  * Image representation includes scientific data types (like IEEE floating point data) 
00082  * and attributes (or metadata like GeoTIFF and Exif tags).
00083  * Animation, video and volumes are supported as image sequences, 
00084  * but there is no digital audio support.
00085  * \par
00086  * The main goal of the library is to provide a simple API and abstraction
00087  * of images for scientific applications.
00088  * \par
00089  * The toolkit API is written in C. 
00090  * The core library source code is implemented in C++ and it is very portable, 
00091  * it can be compiled in Windows and UNIX with no modifications. 
00092  * New image processing operations can be implemented in C or in C++.
00093  * \par
00094  * IM is free software, can be used for public and commercial applications.
00095  * \par
00096  * This work was developed at Tecgraf/PUC-Rio 
00097  * by means of the partnership with PETROBRAS/CENPES.
00098  *
00099  * \section author Author
00100  * \par
00101  * Basic Software Group @ Tecgraf/PUC-Rio
00102  * - Antonio Scuri [email protected]
00103  *
00104  * \section copyright Copyright Notice
00105 \verbatim
00106 
00107 ****************************************************************************
00108 * Copyright (C) 1994-2007 Tecgraf/PUC-Rio and PETROBRAS S/A.               *
00109 * All rights reserved.                                                     *
00110 *                                                                          *
00111 * Permission is hereby granted, free of charge, to any person obtaining    *
00112 * a copy of this software and associated documentation files (the          *
00113 * "Software"), to deal in the Software without restriction, including      *
00114 * without limitation the rights to use, copy, modify, merge, publish,      *
00115 * distribute, sublicense, and/or sell copies of the Software, and to       *
00116 * permit persons to whom the Software is furnished to do so, subject to    *
00117 * the following conditions:                                                *
00118 *                                                                          *
00119 * The above copyright notice and this permission notice shall be           *
00120 * included in all copies or substantial portions of the Software.          *
00121 *                                                                          *
00122 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,          *
00123 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF       *
00124 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
00125 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY     *
00126 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,     *
00127 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE        *
00128 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                   *
00129 ****************************************************************************
00130 \endverbatim
00131  */
00132 
00133 
00134 /** \defgroup imagerep Image Representation
00135  * \par
00136  * See \ref im.h
00137  */
00138 
00139 
00140 /** \defgroup file Image Storage
00141  * \par
00142  * See \ref im.h
00143  */
00144 
00145 
00146 /** \defgroup format File Formats
00147  * \par
00148  * See \ref im.h
00149  *
00150  * Internal Predefined File Formats:
00151  * \li "BMP" - Windows Device Independent Bitmap
00152  * \li "PCX" - ZSoft Picture
00153  * \li "GIF" - Graphics Interchange Format
00154  * \li "TIFF" - Tagged Image File Format
00155  * \li "RAS" - Sun Raster File
00156  * \li "SGI" - Silicon Graphics Image File Format
00157  * \li "JPEG" - JPEG File Interchange Format
00158  * \li "LED" - IUP image in LED
00159  * \li "TGA" - Truevision Targa
00160  * \li "RAW" - RAW File
00161  * \li "PNM" - Netpbm Portable Image Map 
00162  * \li "ICO" - Windows Icon 
00163  * \li "PNG" - Portable Network Graphic Format 
00164  *
00165  * Other Supported File Formats:
00166  * \li "JP2" - JPEG-2000 JP2 File Format 
00167  * \li "AVI" - Windows Audio-Video Interleaved RIFF
00168  * \li "WMV" -  Windows Media Video Format
00169  *          
00170  * Some Known Compressions:
00171  * \li "NONE" - No Compression.
00172  * \li "RLE"  - Run Lenght Encoding.
00173  * \li "LZW"  - Lempel, Ziff and Welsh.
00174  * \li "JPEG" - Join Photographics Experts Group.
00175  * \li "DEFLATE" - LZ77 variation (ZIP)
00176  *          
00177  * \ingroup file */
00178 
00179  
00180 /* Library Names Convention
00181  *
00182  *   Global Functions and Types - "im[Object][Action]"  using first capitals (imFileOpen)
00183  *   Local Functions and Types  -  "i[Object][Action]"  using first capitals (iTIFFGetCompIndex)
00184  *   Local Static Variables - same as local functions and types (iFormatCount)
00185  *   Local Static Tables - same as local functions and types with "Table" suffix (iTIFFCompTable)
00186  *   Variables and Members - no prefix, all lower case (width)
00187  *   Defines and Enumerations - all capitals (IM_ERR_NONE)
00188  *
00189  */
00190 
00191 
00192 #endif