1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/** \file
* \brief IM Lua 5 Binding
*
* See Copyright Notice in im_lib.h
* $Id: imlua_convert.c,v 1.2 2009/08/04 21:35:26 scuri Exp $
*/
#include "im.h"
#include "im_image.h"
#include "im_convert.h"
#include <lua.h>
#include <lauxlib.h>
#include "imlua.h"
#include "imlua_image.h"
#include "imlua_aux.h"
/*****************************************************************************\
im.ConvertDataType(src_image, dst_image, cpx2real, gamma, abssolute, cast_mode)
\*****************************************************************************/
static int imluaConvertDataType (lua_State *L)
{
imImage* src_image = imlua_checkimage(L, 1);
imImage* dst_image = imlua_checkimage(L, 2);
int cpx2real = luaL_checkint(L, 3);
float gamma = (float) luaL_checknumber(L, 4);
int abssolute = lua_toboolean(L, 5);
int cast_mode = luaL_checkint(L, 6);
imlua_matchcolorspace(L, src_image, dst_image);
imlua_pusherror(L, imConvertDataType(src_image, dst_image, cpx2real, gamma, abssolute, cast_mode));
return 1;
}
/*****************************************************************************\
im.ConvertColorSpace(src_image, dst_image)
\*****************************************************************************/
static int imluaConvertColorSpace (lua_State *L)
{
imImage* src_image = imlua_checkimage(L, 1);
imImage* dst_image = imlua_checkimage(L, 2);
imlua_matchdatatype(L, src_image, dst_image);
imlua_pusherror(L, imConvertColorSpace(src_image, dst_image));
return 1;
}
/*****************************************************************************\
im.ConvertToBitmap(src_image, dst_image, cpx2real, gamma, abssolute, cast_mode)
\*****************************************************************************/
static int imluaConvertToBitmap (lua_State *L)
{
imImage* src_image = imlua_checkimage(L, 1);
imImage* dst_image = imlua_checkimage(L, 2);
int cpx2real = luaL_checkint(L, 3);
float gamma = (float) luaL_checknumber(L, 4);
int abssolute = lua_toboolean(L, 5);
int cast_mode = luaL_checkint(L, 6);
imlua_matchsize(L, src_image, dst_image);
imlua_matchcheck(L, imImageIsBitmap(dst_image), "image must be a bitmap");
imlua_pusherror(L, imConvertToBitmap(src_image, dst_image, cpx2real, gamma, abssolute, cast_mode));
return 1;
}
static const luaL_reg imconvert_lib[] = {
{"ConvertDataType", imluaConvertDataType},
{"ConvertColorSpace", imluaConvertColorSpace},
{"ConvertToBitmap", imluaConvertToBitmap},
{NULL, NULL}
};
void imlua_open_convert (lua_State *L)
{
/* "im" table is at the top of the stack */
luaL_register(L, NULL, imconvert_lib);
}
|