IM: imlua.h Source File

IM - An Imaging Tool

imlua.h

Go to the documentation of this file.
00001 /** \file
00002  * \brief IM Lua 5 Binding
00003  *
00004  * See Copyright Notice in im_lib.h
00005  */
00006 
00007 #ifndef __IMLUA_H
00008 #define __IMLUA_H
00009 
00010 #ifdef __cplusplus
00011 extern "C" {
00012 #endif
00013 
00014 /** \defgroup imlua IM Lua 5 Binding
00015  * \par
00016  * Binding for the Lua 5 scripting language. Works with versions 5.0 and 5.1. \n
00017  * Lua 5.0.2 Copyright (C) 1994-2004 Tecgraf, PUC-Rio                         \n
00018  * Lua 5.1 Copyright (C) 1994-2005 Lua.org, PUC-Rio                           \n
00019  * R. Ierusalimschy, L. H. de Figueiredo & W. Celes                           \n
00020  * http://www.lua.org
00021  * \par
00022  * The name of the functions were changed because of the namespace "im" and because of the object orientation. \n
00023  * As a general rule use:
00024 \verbatim
00025     imXxx  -> im.Xxx
00026     IM_XXX -> im.XXX
00027     imFileXXX(ifile,... -> ifile:XXX(...
00028     imImageXXX(image,... -> image:XXX(...
00029 \endverbatim
00030  * All the objects are garbage collected by the Lua garbage collector.
00031  * \par
00032  * See \ref imlua.h
00033  * \ingroup util */
00034 
00035 #ifdef LUA_NOOBJECT  /* Lua 3 */
00036 void imlua_open(void);
00037 #endif
00038 
00039 #ifdef LUA_TNONE  /* Lua 5 */
00040 
00041 /** Initializes the Lua binding of the main IM library.  \n
00042  * Returns 1 (leaves the "im" table on the top of the stack).
00043  * You must link the application with the "imlua5" library.
00044  * \ingroup imlua */
00045 int imlua_open(lua_State *L);
00046 int luaopen_imlua(lua_State *L);
00047 
00048 /** Initializes the Lua binding of the capture library.  \n
00049  * Returns 1 (leaves the "im" table on the top of the stack).
00050  * You must link the application with the "imlua_capture5" library.
00051  * \ingroup imlua */
00052 int imlua_open_capture(lua_State *L);
00053 int luaopen_imlua_capture(lua_State *L);
00054 
00055 /** Initializes the Lua binding of the process library.  \n
00056  * Returns 1 (leaves the "im" table on the top of the stack).
00057  * You must link the application with the "imlua_process5" library.
00058  * \ingroup imlua */
00059 int imlua_open_process(lua_State *L);
00060 int luaopen_imlua_process(lua_State *L);
00061 
00062 /** Initializes the Lua binding of the fourier transform library.  \n
00063  * Returns 1 (leaves the "im" table on the top of the stack).
00064  * You must link the application with the "imlua_fftw5" library.
00065  * \ingroup imlua */
00066 int imlua_open_fftw(lua_State *L);
00067 int luaopen_imlua_fftw(lua_State *L);
00068 
00069 /** Initializes the Lua binding of addicional functions for the CD library.  \n
00070  * Returns 1 (leaves the "im" table on the top of the stack).
00071  * CD library is a 2D graphics library (http://www.tecgraf.puc-rio.br/cd) \n
00072  * You must link the application with the "imlua_cd5" library.
00073  *
00074  * The following functions are defined:
00075  * \verbatim bitmap:imImageCreate() -> image: imImage [in Lua 5] 
00076      Creates an imImage from a cdBitmap. \endverbatim
00077  * 
00078  * \verbatim image:cdCreateBitmap() -> bitmap: cdBitmap [in Lua 5]
00079      Creates a cdBitmap from an imImage. 
00080      The imImage must be a bitmap image, see \ref imImageIsBitmap. \endverbatim
00081  * 
00082  * \verbatim image:cdInitBitmap() -> bitmap: cdBitmap [in Lua 5] 
00083      Creates a cdBitmap from an imImage, but reuses image data. 
00084      When the cdBitmap is destroyed, the data is preserved. \endverbatim
00085  * 
00086  * \verbatim image:cdCanvasPutImageRect(canvas: cdCanvas, x: number, y: number, w: number, h: number, xmin: number, xmax: number, ymin: number, ymax: number) [in Lua 5]
00087      Draws the imImage into the given cdCanvas.
00088      The imImage must be a bitmap image, see \ref imImageIsBitmap. \endverbatim
00089  * 
00090  * \verbatim image:wdCanvasPutImageRect(canvas: cdCanvas, x: number, y: number, w: number, h: number, xmin: number, xmax: number, ymin: number, ymax: number) [in Lua 5]
00091      Draws the imImage into the given cdCanvas using world coordinates.
00092      The imImage must be a bitmap image, see \ref imImageIsBitmap. \endverbatim
00093  * 
00094  * \verbatim image:cdCanvasGetImage(canvas: cdCanvas, x: number, y: number) [in Lua 5]
00095      Retrieve the imImage data from the given cdCanvas.
00096      The imImage must be a IM_RGB/IM_BYTE image. \endverbatim
00097  * 
00098  * \verbatim image:cdCreateCanvas([res: number]) -> canvas: cdCanvas [in Lua 5]
00099      Creates a cdCanvas using the CD_IMAGERGB driver. Resolution is optional, default is 3.8 pixels per milimiter (96.52 DPI).
00100      The imImage must be a IM_RGB/IM_BYTE image. \endverbatim
00101  * 
00102  * \ingroup imlua */
00103 int imlua_open_cd(lua_State *L);
00104 int luaopen_imlua_cd(lua_State *L);
00105 
00106 
00107 #endif
00108 
00109 #ifdef __cplusplus
00110 }
00111 #endif
00112 
00113 #endif