1 /** \file
2  * \brief Library Management and Main Documentation
3  *
4  * See Copyright Notice in this file.
5  */
6 module im.im_lib;
7 
8 version(IM) :
9 
10 version(DigitalMars) version(Windows) { pragma(lib, "im.lib"); }
11 
12 extern(C) @nogc nothrow {
13 
14       
15 /** \defgroup lib Library Management
16  * \ingroup util 
17  * \par
18  * Usefull definitions for about dialogs and 
19  * for comparing the compiled version with the linked version of the library.
20  * \par
21  * \verbatim im._AUTHOR [in Lua 5] \endverbatim
22  * \verbatim im._COPYRIGHT [in Lua 5] \endverbatim
23  * \verbatim im._VERSION [in Lua 5] \endverbatim
24  * \verbatim im._VERSION_DATE [in Lua 5] \endverbatim
25  * \verbatim im._VERSION_NUMBER [in Lua 5] \endverbatim
26  * \verbatim im._DESCRIPTION [in Lua 5] \endverbatim
27  * \verbatim im._NAME [in Lua 5] \endverbatim
28  * \par
29  * See \ref im_lib.h
30  * @{
31  */
32 enum IM_NAME = "IM - An Imaging Toolkit";
33 enum IM_DESCRIPTION =  "Toolkit for Image Representation, Storage, Capture and Processing";
34 enum IM_COPYRIGHT = "Copyright (C) 1994-2016 Tecgraf/PUC-Rio";
35 enum IM_AUTHOR = "Antonio Scuri";
36 enum IM_VERSION = "3.12";      /* bug fixes are reported only by imVersion functions */
37 enum IM_VERSION_NUMBER = 312000;
38 enum IM_VERSION_DATE = "2016/09/30";  /* does not include bug fix releases */
39 /** @} */
40 
41 
42 /** Returns the library current version. Returns the definition IM_VERSION plus the bug fix number.
43  *
44  * \verbatim im.Version() -> version: string [in Lua 5] \endverbatim
45  * \ingroup lib */
46 const(char)* imVersion();
47 
48 /** Returns the library current version release date. Returns the definition IM_VERSION_DATE.
49  *
50  * \verbatim im.VersionDate() -> date: string [in Lua 5] \endverbatim
51  * \ingroup lib */
52 const(char)* imVersionDate();
53 
54 /** Returns the library current version number. Returns the definition IM_VERSION_NUMBER plus the bug fix number. \n
55  * Can be compared in run time with IM_VERSION_NUMBER to compare compiled and linked versions of the library.
56  *
57  * \verbatim im.VersionNumber() -> version: number [in Lua 5] \endverbatim
58  * \ingroup lib */
59 int imVersionNumber();
60 
61 
62 } // extern(C) @nogc nothrow
63 
64 
65 /*! \mainpage IM
66  * <CENTER>
67  * <H3> Image Representation, Storage, Capture and Processing </H3>
68  * Tecgraf: Computer Graphics Technology Group, PUC-Rio, Brazil \n
69  * http://www.tecgraf.puc-rio.br/im \n
70  * mailto:im@tecgraf.puc-rio.br
71  * </CENTER>
72  *
73  * \section over Overview
74  * \par
75  * IM is a toolkit for Digital Imaging. 
76  * \par
77  * It provides support for image capture, several image file formats and many image processing operations. 
78  * \par
79  * Image representation includes scientific data types (like IEEE floating point data) 
80  * and attributes (or metadata like GeoTIFF and Exif tags).
81  * Animation, video and volumes are supported as image sequences, 
82  * but there is no digital audio support.
83  * \par
84  * The main goal of the library is to provide a simple API and abstraction
85  * of images for scientific applications.
86  * \par
87  * The toolkit API is written in C. 
88  * The core library source code is implemented in C++ and it is very portable, 
89  * it can be compiled in Windows and UNIX with no modifications. 
90  * New image processing operations can be implemented in C or in C++.
91  * \par
92  * IM is free software, can be used for public and commercial applications.
93  * \par
94  * This work was developed at Tecgraf/PUC-Rio 
95  * by means of the partnership with PETROBRAS/CENPES.
96  *
97  * \section author Author
98  * \par
99  * Antonio Scuri scuri@tecgraf.puc-rio.br
100  *
101  * \section copyright Copyright Notice
102 \verbatim
103 
104 ****************************************************************************
105 Copyright (C) 1994-2016 Tecgraf/PUC-Rio.                                
106                                                                          
107 Permission is hereby granted, free of charge, to any person obtaining    
108 a copy of this software and associated documentation files (the          
109 "Software"), to deal in the Software without restriction, including      
110 without limitation the rights to use, copy, modify, merge, publish,      
111 distribute, sublicense, and/or sell copies of the Software, and to       
112 permit persons to whom the Software is furnished to do so, subject to    
113 the following conditions:                                                
114                                                                          
115 The above copyright notice and this permission notice shall be           
116 included in all copies or substantial portions of the Software.          
117                                                                          
118 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,          
119 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF       
120 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   
121 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY     
122 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,     
123 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE        
124 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                   
125 ****************************************************************************
126 \endverbatim
127  */
128 
129 
130 /** \defgroup imagerep Image Representation
131  * \par
132  * See \ref im.h
133  */
134 
135 
136 /** \defgroup file Image Storage
137  * \par
138  * See \ref im.h
139  */
140 
141 
142 /** \defgroup format File Formats
143  * \par
144  * See \ref im.h
145  *
146  * Internal Predefined File Formats:
147  * \li "BMP" - Windows Device Independent Bitmap
148  * \li "GIF" - Graphics Interchange Format
149  * \li "ICO" - Windows Icon 
150  * \li "JPEG" - JPEG File Interchange Format
151  * \li "LED" - IUP image in LED
152  * \li "PCX" - ZSoft Picture
153  * \li "PFM" - Portable FloatMap Image Format
154  * \li "PNG" - Portable Network Graphic Format 
155  * \li "PNM" - Netpbm Portable Image Map 
156  * \li "RAS" - Sun Raster File
157  * \li "RAW" - RAW File
158  * \li "SGI" - Silicon Graphics Image File Format
159  * \li "TGA" - Truevision Targa
160  * \li "TIFF" - Tagged Image File Format
161  *
162  * Other Supported File Formats:
163  * \li "JP2" - JPEG-2000 JP2 File Format 
164  * \li "AVI" - Windows Audio-Video Interleaved RIFF
165  * \li "WMV" -  Windows Media Video Format
166  *          
167  * Some Known Compressions:
168  * \li "NONE" - No Compression.
169  * \li "RLE"  - Run Lenght Encoding.
170  * \li "LZW"  - Lempel, Ziff and Welsh.
171  * \li "JPEG" - Join Photographics Experts Group.
172  * \li "DEFLATE" - LZ77 variation (ZIP)
173  *          
174  * \ingroup file */
175 
176  
177 /* Library Names Convention
178  *
179  *   Global Functions and Types - "im[Object][Action]"  using first capitals (imFileOpen)
180  *   Local Functions and Types  -  "i[Object][Action]"  using first capitals (iTIFFGetCompIndex)
181  *   Local Static Variables - same as local functions and types (iFormatCount)
182  *   Local Static Tables - same as local functions and types with "Table" suffix (iTIFFCompTable)
183  *   Variables and Members - no prefix, all lower case (width)
184  *   Defines and Enumerations - all capitals (IM_ERR_NONE)
185  *
186  */