summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/im_convertbitmap.cpp40
-rw-r--r--src/im_convertcolor.cpp276
-rw-r--r--src/imlua5.mak8
-rw-r--r--src/imlua_process5.mak1
-rw-r--r--src/lua5/im_convert.lua18
-rw-r--r--src/lua5/im_fftw.lua19
-rw-r--r--src/lua5/im_image.lua24
-rw-r--r--src/lua5/imlua_convert.c19
-rw-r--r--src/lua5/imlua_image.c50
-rw-r--r--src/lua5/loh/im_fftw.loh151
10 files changed, 383 insertions, 223 deletions
diff --git a/src/im_convertbitmap.cpp b/src/im_convertbitmap.cpp
index 9d3c720..a4f6b70 100644
--- a/src/im_convertbitmap.cpp
+++ b/src/im_convertbitmap.cpp
@@ -2,7 +2,7 @@
* \brief Image Conversion
*
* See Copyright Notice in im_lib.h
- * $Id: im_convertbitmap.cpp,v 1.2 2009/08/13 22:34:25 scuri Exp $
+ * $Id: im_convertbitmap.cpp,v 1.3 2009/08/18 02:23:33 scuri Exp $
*/
#include "im.h"
@@ -129,7 +129,7 @@ static void iImageMakeGray(imbyte *map, int count, int step)
}
}
-static void iImageCopyMapAlpha(imbyte *map, imbyte *gldata, int depth, int count)
+static void iImageGLCopyMapAlpha(imbyte *map, imbyte *gldata, int depth, int count)
{
/* gldata can be GL_RGBA or GL_LUMINANCE_ALPHA */
gldata += depth-1; /* position at first alpha */
@@ -141,38 +141,38 @@ static void iImageCopyMapAlpha(imbyte *map, imbyte *gldata, int depth, int count
}
}
-static void iImageSetTranspMap(imbyte *map, imbyte *gldata, int count, imbyte *transp_map, int transp_count)
+static void iImageGLSetTranspColor(imbyte *gldata, int count, imbyte r, imbyte g, imbyte b)
{
/* gldata is GL_RGBA */
- gldata += 3; /* position at first alpha */
for(int i = 0; i < count; i++)
{
- if (*map < transp_count)
- *gldata = transp_map[*map];
+ if (*(gldata+0) == r &&
+ *(gldata+1) == g &&
+ *(gldata+2) == b)
+ *(gldata+3) = 0; /* transparent */
else
- *gldata = 255; /* opaque */
-
- map++;
+ *(gldata+3) = 255; /* opaque */
gldata += 4;
}
}
-static void iImageSetTranspColor(imbyte *gldata, int count, imbyte r, imbyte g, imbyte b)
+static void iImageGLSetTranspMap(imbyte *map, imbyte *gldata, int count, imbyte *transp_map, int transp_count)
{
/* gldata is GL_RGBA */
+ gldata += 3; /* position at first alpha */
for(int i = 0; i < count; i++)
{
- if (*(gldata+0) == r &&
- *(gldata+1) == g &&
- *(gldata+2) == b)
- *(gldata+3) = 0; /* transparent */
+ if (*map < transp_count)
+ *gldata = transp_map[*map];
else
- *(gldata+3) = 255; /* opaque */
+ *gldata = 255; /* opaque */
+
+ map++;
gldata += 4;
}
}
-static void iImageSetTranspIndex(imbyte *map, imbyte *gldata, int depth, int count, imbyte index)
+static void iImageGLSetTranspIndex(imbyte *map, imbyte *gldata, int depth, int count, imbyte index)
{
/* gldata can be GL_RGBA or GL_LUMINANCE_ALPHA */
gldata += depth-1; /* position at first alpha */
@@ -258,7 +258,7 @@ void* imImageGetOpenGLData(const imImage* image, int *format)
imConvertPacking(image->data[0], gldata, image->width, image->height, 3, IM_BYTE, 0);
if (transp_color)
- iImageSetTranspColor(gldata, image->count, *(transp_color+0), *(transp_color+1), *(transp_color+2));
+ iImageGLSetTranspColor(gldata, image->count, *(transp_color+0), *(transp_color+1), *(transp_color+2));
}
}
else
@@ -271,11 +271,11 @@ void* imImageGetOpenGLData(const imImage* image, int *format)
iImageMakeGray(gldata, image->count, (glformat==GL_LUMINANCE_ALPHA)? 2: 1);
if (image->has_alpha)
- iImageCopyMapAlpha((imbyte*)image->data[1], gldata, depth, image->count);
+ iImageGLCopyMapAlpha((imbyte*)image->data[1], gldata, depth, image->count);
else if (transp_map)
- iImageSetTranspMap((imbyte*)image->data[0], gldata, image->count, transp_map, transp_count);
+ iImageGLSetTranspMap((imbyte*)image->data[0], gldata, image->count, transp_map, transp_count);
else if (transp_index)
- iImageSetTranspIndex((imbyte*)image->data[0], gldata, depth, image->count, *transp_index);
+ iImageGLSetTranspIndex((imbyte*)image->data[0], gldata, depth, image->count, *transp_index);
}
if (format) *format = glformat;
diff --git a/src/im_convertcolor.cpp b/src/im_convertcolor.cpp
index 4068b94..8e96ccc 100644
--- a/src/im_convertcolor.cpp
+++ b/src/im_convertcolor.cpp
@@ -2,7 +2,7 @@
* \brief Image Conversion
*
* See Copyright Notice in im_lib.h
- * $Id: im_convertcolor.cpp,v 1.1 2008/10/17 06:10:16 scuri Exp $
+ * $Id: im_convertcolor.cpp,v 1.2 2009/08/18 02:23:33 scuri Exp $
*/
#include "im.h"
@@ -56,6 +56,57 @@ void imConvertMapToRGB(unsigned char* data, int count, int depth, int packed, lo
}
}
+static void iConvertSetTranspMap(imbyte *src_map, imbyte *dst_alpha, int count, imbyte *transp_map, int transp_count)
+{
+ for(int i = 0; i < count; i++)
+ {
+ if (*src_map < transp_count)
+ *dst_alpha = transp_map[*src_map];
+ else
+ *dst_alpha = 255; /* opaque */
+
+ src_map++;
+ dst_alpha++;
+ }
+}
+
+static void iConvertSetTranspIndex(imbyte *src_map, imbyte *dst_alpha, int count, imbyte index)
+{
+ for(int i = 0; i < count; i++)
+ {
+ if (*src_map == index)
+ *dst_alpha = 0; /* full transparent */
+ else
+ *dst_alpha = 255; /* opaque */
+
+ src_map++;
+ dst_alpha++;
+ }
+}
+
+static void iConvertSetTranspColor(imbyte **dst_data, int count, imbyte r, imbyte g, imbyte b)
+{
+ imbyte *pr = dst_data[0];
+ imbyte *pg = dst_data[1];
+ imbyte *pb = dst_data[2];
+ imbyte *pa = dst_data[3];
+
+ for(int i = 0; i < count; i++)
+ {
+ if (*pr == r &&
+ *pg == g &&
+ *pb == b)
+ *pa = 0; /* transparent */
+ else
+ *pa = 255; /* opaque */
+
+ pr++;
+ pg++;
+ pb++;
+ pa++;
+ }
+}
+
// convert bin2gray and gray2bin
inline void iConvertBinary(imbyte* map, int count, imbyte value)
{
@@ -124,7 +175,7 @@ static void iConvertMapToRGB(const imbyte* src_map, imbyte* red, imbyte* green,
template <class T>
int iDoConvert2Gray(int count, int data_type,
- const T** src_data, int src_color_space, T** dst_data, int counter)
+ const T** src_data, int src_color_space, T** dst_data, int counter)
{
int i;
T max;
@@ -201,7 +252,7 @@ int iDoConvert2Gray(int count, int data_type,
template <class T>
int iDoConvert2RGB(int count, int data_type,
- const T** src_data, int src_color_space, T** dst_data, int counter)
+ const T** src_data, int src_color_space, T** dst_data, int counter)
{
int i;
T max, zero;
@@ -303,7 +354,7 @@ int iDoConvert2RGB(int count, int data_type,
template <class T>
int iDoConvert2YCbCr(int count, int data_type,
- const T** src_data, int src_color_space, T** dst_data, int counter)
+ const T** src_data, int src_color_space, T** dst_data, int counter)
{
int i;
T zero;
@@ -339,7 +390,7 @@ int iDoConvert2YCbCr(int count, int data_type,
template <class T>
int iDoConvert2XYZ(int count, int data_type,
- const T** src_data, int src_color_space, T** dst_data, int counter)
+ const T** src_data, int src_color_space, T** dst_data, int counter)
{
int i;
T max;
@@ -439,7 +490,7 @@ int iDoConvert2XYZ(int count, int data_type,
template <class T>
int iDoConvert2Lab(int count, int data_type,
- const T** src_data, int src_color_space, T** dst_data, int counter)
+ const T** src_data, int src_color_space, T** dst_data, int counter)
{
int i;
T max;
@@ -561,7 +612,7 @@ int iDoConvert2Lab(int count, int data_type,
template <class T>
int iDoConvert2Luv(int count, int data_type,
- const T** src_data, int src_color_space, T** dst_data, int counter)
+ const T** src_data, int src_color_space, T** dst_data, int counter)
{
int i;
T max;
@@ -779,105 +830,152 @@ static int iConvertColorSpace(const imImage* src_image, imImage* dst_image)
int imConvertColorSpace(const imImage* src_image, imImage* dst_image)
{
+ int ret = IM_ERR_NONE;
assert(src_image);
assert(dst_image);
if (!imImageMatchDataType(src_image, dst_image))
return IM_ERR_DATA;
- if (src_image->color_space == dst_image->color_space)
- return IM_ERR_DATA;
-
- switch(dst_image->color_space)
+ if (src_image->color_space != dst_image->color_space)
{
- case IM_RGB:
- switch(src_image->color_space)
+ switch(dst_image->color_space)
{
- case IM_BINARY:
- memcpy(dst_image->data[0], src_image->data[0], dst_image->plane_size);
+ case IM_RGB:
+ switch(src_image->color_space)
+ {
+ case IM_BINARY:
+ memcpy(dst_image->data[0], src_image->data[0], dst_image->plane_size);
+ iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 255);
+ memcpy(dst_image->data[1], dst_image->data[0], dst_image->plane_size);
+ memcpy(dst_image->data[2], dst_image->data[0], dst_image->plane_size);
+ ret = IM_ERR_NONE;
+ break;
+ case IM_MAP:
+ iConvertMapToRGB((imbyte*)src_image->data[0], (imbyte*)dst_image->data[0], (imbyte*)dst_image->data[1], (imbyte*)dst_image->data[2], dst_image->count, src_image->palette, src_image->palette_count);
+ ret = IM_ERR_NONE;
+ break;
+ case IM_GRAY:
+ memcpy(dst_image->data[0], src_image->data[0], dst_image->plane_size);
+ memcpy(dst_image->data[1], src_image->data[0], dst_image->plane_size);
+ memcpy(dst_image->data[2], src_image->data[0], dst_image->plane_size);
+ ret = IM_ERR_NONE;
+ break;
+ default:
+ ret = iConvertColorSpace(src_image, dst_image);
+ break;
+ }
+ break;
+ case IM_GRAY:
+ switch(src_image->color_space)
+ {
+ case IM_BINARY:
+ memcpy(dst_image->data[0], src_image->data[0], dst_image->size);
iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 255);
- memcpy(dst_image->data[1], dst_image->data[0], dst_image->plane_size);
- memcpy(dst_image->data[2], dst_image->data[0], dst_image->plane_size);
- return IM_ERR_NONE;
- case IM_MAP:
- iConvertMapToRGB((imbyte*)src_image->data[0], (imbyte*)dst_image->data[0], (imbyte*)dst_image->data[1], (imbyte*)dst_image->data[2], dst_image->count, src_image->palette, src_image->palette_count);
- return IM_ERR_NONE;
- case IM_GRAY:
+ ret = IM_ERR_NONE;
+ break;
+ case IM_MAP:
+ iConvertMap2Gray((imbyte*)src_image->data[0], (imbyte*)dst_image->data[0], dst_image->count, src_image->palette, src_image->palette_count);
+ ret = IM_ERR_NONE;
+ break;
+ case IM_YCBCR:
memcpy(dst_image->data[0], src_image->data[0], dst_image->plane_size);
- memcpy(dst_image->data[1], src_image->data[0], dst_image->plane_size);
- memcpy(dst_image->data[2], src_image->data[0], dst_image->plane_size);
- return IM_ERR_NONE;
- default:
- return iConvertColorSpace(src_image, dst_image);
- }
- case IM_GRAY:
- switch(src_image->color_space)
- {
+ ret = IM_ERR_NONE;
+ break;
+ default:
+ ret = iConvertColorSpace(src_image, dst_image);
+ break;
+ }
+ break;
+ case IM_MAP:
+ switch(src_image->color_space)
+ {
+ case IM_BINARY: // no break, same procedure as gray
+ case IM_GRAY:
+ memcpy(dst_image->data[0], src_image->data[0], dst_image->size);
+ dst_image->palette_count = src_image->palette_count;
+ memcpy(dst_image->palette, src_image->palette, dst_image->palette_count*sizeof(long));
+ ret = IM_ERR_NONE;
+ break;
+ case IM_RGB:
+ dst_image->palette_count = 256;
+ ret = imConvertRGB2Map(src_image->width, src_image->height,
+ (imbyte*)src_image->data[0], (imbyte*)src_image->data[1], (imbyte*)src_image->data[2],
+ (imbyte*)dst_image->data[0], dst_image->palette, &dst_image->palette_count);
+ break;
+ default:
+ ret = IM_ERR_DATA;
+ break;
+ }
+ break;
case IM_BINARY:
- memcpy(dst_image->data[0], src_image->data[0], dst_image->size);
- iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 255);
- return IM_ERR_NONE;
- case IM_MAP:
- iConvertMap2Gray((imbyte*)src_image->data[0], (imbyte*)dst_image->data[0], dst_image->count, src_image->palette, src_image->palette_count);
- return IM_ERR_NONE;
- case IM_YCBCR:
- memcpy(dst_image->data[0], src_image->data[0], dst_image->plane_size);
- return IM_ERR_NONE;
- default:
- return iConvertColorSpace(src_image, dst_image);
- }
- case IM_MAP:
- switch(src_image->color_space)
- {
- case IM_BINARY: // no break, same procedure as gray
- case IM_GRAY:
- memcpy(dst_image->data[0], src_image->data[0], dst_image->size);
- dst_image->palette_count = src_image->palette_count;
- memcpy(dst_image->palette, src_image->palette, dst_image->palette_count*sizeof(long));
- return IM_ERR_NONE;
- case IM_RGB:
- dst_image->palette_count = 256;
- return imConvertRGB2Map(src_image->width, src_image->height,
- (imbyte*)src_image->data[0], (imbyte*)src_image->data[1], (imbyte*)src_image->data[2],
- (imbyte*)dst_image->data[0], dst_image->palette, &dst_image->palette_count);
- default:
- return IM_ERR_DATA;
- }
- case IM_BINARY:
- switch(src_image->color_space)
- {
- case IM_GRAY:
- memcpy(dst_image->data[0], src_image->data[0], dst_image->size);
- iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 1);
- return IM_ERR_NONE;
- case IM_MAP: // convert to gray, then convert to binary
- iConvertMap2Gray((imbyte*)src_image->data[0], (imbyte*)dst_image->data[0], dst_image->count, src_image->palette, src_image->palette_count);
- iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 1);
- return IM_ERR_NONE;
- case IM_YCBCR: // convert to gray, then convert to binary
- memcpy(dst_image->data[0], src_image->data[0], dst_image->plane_size);
- iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 1);
- return IM_ERR_NONE;
- default: // convert to gray, then convert to binary
+ switch(src_image->color_space)
{
+ case IM_GRAY:
+ memcpy(dst_image->data[0], src_image->data[0], dst_image->size);
+ iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 1);
+ ret = IM_ERR_NONE;
+ break;
+ case IM_MAP: // convert to gray, then convert to binary
+ iConvertMap2Gray((imbyte*)src_image->data[0], (imbyte*)dst_image->data[0], dst_image->count, src_image->palette, src_image->palette_count);
+ iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 1);
+ ret = IM_ERR_NONE;
+ break;
+ case IM_YCBCR: // convert to gray, then convert to binary
+ memcpy(dst_image->data[0], src_image->data[0], dst_image->plane_size);
+ iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 1);
+ ret = IM_ERR_NONE;
+ break;
+ default: // convert to gray, then convert to binary
dst_image->color_space = IM_GRAY;
- int ret = iConvertColorSpace(src_image, dst_image);
+ ret = iConvertColorSpace(src_image, dst_image);
dst_image->color_space = IM_BINARY;
- if (ret != IM_ERR_NONE) return ret;
- iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 1);
- return IM_ERR_NONE;
+ if (ret == IM_ERR_NONE)
+ iConvertBinary((imbyte*)dst_image->data[0], dst_image->count, 1);
+ ret = IM_ERR_NONE;
+ break;
}
+ break;
+ case IM_YCBCR:
+ switch(src_image->color_space)
+ {
+ case IM_GRAY:
+ memcpy(dst_image->data[0], src_image->data[0], dst_image->plane_size);
+ ret = IM_ERR_NONE;
+ break;
+ default:
+ ret = iConvertColorSpace(src_image, dst_image);
+ break;
+ }
+ break;
+ default:
+ ret = iConvertColorSpace(src_image, dst_image);
+ break;
}
- case IM_YCBCR:
- switch(src_image->color_space)
+ }
+
+ if (src_image->has_alpha && dst_image->has_alpha)
+ memcpy(dst_image->data[dst_image->depth], src_image->data[src_image->depth], src_image->plane_size);
+ else if (dst_image->color_space == IM_RGB && dst_image->data_type == IM_BYTE && dst_image->has_alpha)
+ {
+ if (src_image->color_space == IM_RGB)
+ {
+ imbyte* transp_color = (imbyte*)imImageGetAttribute(src_image, "TransparencyColor", NULL, NULL);
+ if (transp_color)
+ iConvertSetTranspColor((imbyte**)dst_image->data, dst_image->count, *(transp_color+0), *(transp_color+1), *(transp_color+2));
+ }
+ else
{
- case IM_GRAY:
- memcpy(dst_image->data[0], src_image->data[0], dst_image->plane_size);
- return IM_ERR_NONE;
- default:
- return iConvertColorSpace(src_image, dst_image);
+ int transp_count;
+ imbyte* transp_index = (imbyte*)imImageGetAttribute(src_image, "TransparencyIndex", NULL, NULL);
+ imbyte* transp_map = (imbyte*)imImageGetAttribute(src_image, "TransparencyMap", NULL, &transp_count);
+ if (transp_map)
+ iConvertSetTranspMap((imbyte*)src_image->data[0], (imbyte*)dst_image->data[3], dst_image->count, transp_map, transp_count);
+ else if (transp_index)
+ iConvertSetTranspIndex((imbyte*)src_image->data[0], (imbyte*)dst_image->data[3], dst_image->count, *transp_index);
}
- default:
- return iConvertColorSpace(src_image, dst_image);
}
+
+ return ret;
}
+
diff --git a/src/imlua5.mak b/src/imlua5.mak
index 560616a..554b701 100644
--- a/src/imlua5.mak
+++ b/src/imlua5.mak
@@ -1,12 +1,14 @@
PROJNAME = im
LIBNAME = imlua51
-DEF_FILE = imlua.def
OPT = YES
-SRCDIR = lua5
+LOHDIR = lua5/loh
+SRC = lua5/imlua.c lua5/imlua_aux.c lua5/imlua_convert.c lua5/imlua_file.c lua5/imlua_image.c lua5/imlua_palette.c lua5/imlua_util.c
+DEF_FILE = lua5/imlua.def
-SRC = imlua.c imlua_aux.c imlua_convert.c imlua_file.c imlua_image.c imlua_palette.c imlua_util.c
+SRCLUA = lua5/im_image.lua lua5/im_convert.lua
+SRCLUADIR = lua5
INCLUDES = lua5
diff --git a/src/imlua_process5.mak b/src/imlua_process5.mak
index c5e9c79..85415c4 100644
--- a/src/imlua_process5.mak
+++ b/src/imlua_process5.mak
@@ -1,6 +1,5 @@
PROJNAME = im
LIBNAME = imlua_process51
-DEF_FILE = imlua_process.def
OPT = YES
diff --git a/src/lua5/im_convert.lua b/src/lua5/im_convert.lua
new file mode 100644
index 0000000..231bdb5
--- /dev/null
+++ b/src/lua5/im_convert.lua
@@ -0,0 +1,18 @@
+
+function im.ConvertDataTypeNew(src_image, data_type, cpx2real, gamma, abssolute, cast_mode)
+ local dst_image = im.ImageCreateBased(src_image, nil, nil, nil, data_type)
+ return im.ConvertDataType(src_image, dst_image, cpx2real, gamma, abssolute, cast_mode), dst_image
+end
+
+function im.ConvertColorSpaceNew(src_image, color_space, has_alpha)
+ local dst_image = im.ImageCreateBased(src_image, nil, nil, color_space)
+ if (has_alpha) then dst_image:AddAlpha() end
+ return im.ConvertColorSpace(src_image, dst_image), dst_image
+end
+
+function im.ConvertToBitmapNew(src_image, color_space, has_alpha, cpx2real, gamma, abssolute, cast_mode)
+ if (not color_space) then color_space = im.ColorModeToBitmap(src_image:ColorSpace()) end
+ local dst_image = im.ImageCreateBased(src_image, nil, nil, color_space)
+ if (has_alpha) then dst_image:AddAlpha() end
+ return im.ConvertToBitmap(src_image, dst_image, cpx2real, gamma, abssolute, cast_mode), dst_image
+end
diff --git a/src/lua5/im_fftw.lua b/src/lua5/im_fftw.lua
index e57c7bf..7bae53e 100644
--- a/src/lua5/im_fftw.lua
+++ b/src/lua5/im_fftw.lua
@@ -3,6 +3,7 @@
-- Creates a new function, with the name suffixed by "New". This new function
-- creates a new image, based on a source image, and calls the previous function
-- with this new image.
+-- We assume here that the functions returns only one parameter or none.
local function OneSourceOneDest (funcname, width, height, color_space, data_type)
local func = im[funcname]
@@ -14,8 +15,12 @@ local function OneSourceOneDest (funcname, width, height, color_space, data_type
local dst_image = im.ImageCreateBased(src_image, width, height, color_space, data_type)
-- call previous method, repassing all parameters
- func(src_image, dst_image, unpack(arg))
- return dst_image
+ local ret = func(src_image, dst_image, unpack(arg))
+ if (ret) then
+ return ret, dst_image
+ else
+ return dst_image
+ end
end
end
@@ -25,7 +30,7 @@ end
local function TwoSourcesOneDest (funcname, width, height, color_space, data_type)
local func = im[funcname]
-
+
-- see if function is really defined
assert(func, string.format("undefined function `%s'", funcname))
@@ -35,8 +40,12 @@ local function TwoSourcesOneDest (funcname, width, height, color_space, data_typ
local dst_image = im.ImageCreateBased(src_image1, width, height, color_space, data_type)
-- call previous method, repassing all parameters
- func(src_image1, src_image2, dst_image, unpack(arg))
- return dst_image
+ local ret = func(src_image1, src_image2, dst_image, unpack(arg))
+ if (ret) then
+ return ret, dst_image
+ else
+ return dst_image
+ end
end
end
diff --git a/src/lua5/im_image.lua b/src/lua5/im_image.lua
new file mode 100644
index 0000000..03e80f6
--- /dev/null
+++ b/src/lua5/im_image.lua
@@ -0,0 +1,24 @@
+-- If all parameteres, besides the image, are nil, this is equivalent to image:Clone.
+-- If any parameter is not nil, then the value is used instead of the one from the source image.
+-- If a parameter is a function, then the function is called, passing the source
+-- image as parameter, to obtain the substituion value.
+
+function im.ImageCreateBased(image, width, height, color_space, data_type)
+ -- default values are those of the source image
+ width = width or image:Width()
+ height = height or image:Height()
+ color_space = color_space or image:ColorSpace()
+ data_type = data_type or image:DataType()
+
+ -- callback to calculate parameters based on source image
+ if type(width) == "function" then width = width(image) end
+ if type(height) == "function" then height = height(image) end
+ if type(color_space) == "function" then color_space = color_space(image) end
+ if type(data_type) == "function" then data_type = data_type(image) end
+
+ -- create a new image
+ new_image = im.ImageCreate(width, height, color_space, data_type)
+ image:CopyAttributes(new_image)
+ if (image:HasAlpha()) then new_image:AddAlpha() end
+ return new_image
+end
diff --git a/src/lua5/imlua_convert.c b/src/lua5/imlua_convert.c
index 96b8429..c2c56d9 100644
--- a/src/lua5/imlua_convert.c
+++ b/src/lua5/imlua_convert.c
@@ -2,7 +2,7 @@
* \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 $
+ * $Id: imlua_convert.c,v 1.3 2009/08/18 02:23:33 scuri Exp $
*/
#include "im.h"
@@ -76,4 +76,21 @@ void imlua_open_convert (lua_State *L)
{
/* "im" table is at the top of the stack */
luaL_register(L, NULL, imconvert_lib);
+#ifdef TEC_BIGENDIAN
+#ifdef TEC_64
+#include "loh/im_convert_be64.loh"
+#else
+#include "loh/im_convert_be32.loh"
+#endif
+#else
+#ifdef TEC_64
+#ifdef WIN64
+#include "loh/im_convert_le64w.loh"
+#else
+#include "loh/im_convert_le64.loh"
+#endif
+#else
+#include "loh/im_convert.loh"
+#endif
+#endif
}
diff --git a/src/lua5/imlua_image.c b/src/lua5/imlua_image.c
index dc3322a..d823ac1 100644
--- a/src/lua5/imlua_image.c
+++ b/src/lua5/imlua_image.c
@@ -2,7 +2,7 @@
* \brief IM Lua 5 Binding
*
* See Copyright Notice in im_lib.h
- * $Id: imlua_image.c,v 1.2 2009/08/12 04:09:17 scuri Exp $
+ * $Id: imlua_image.c,v 1.3 2009/08/18 02:23:33 scuri Exp $
*/
#include <string.h>
@@ -1055,40 +1055,26 @@ static void createmeta (lua_State *L)
lua_pop(L, 1); /* removes the metatable from the top of the stack */
}
-/* If all parameteres, besides the image, are nil, this is equivalent to image:Clone.
- If any parameter is not nil, then the value is used instead of the one from the source image.
- If a parameter is a function, then the function is called, passing the source
- image as parameter, to obtain the substituion value. */
-static void reg_image(lua_State *L)
-{
- const char* data = {
-"function im.ImageCreateBased(image, width, height, color_space, data_type) \n"
-" -- default values are those of the source image \n"
-" width = width or image:Width() \n"
-" height = height or image:Height() \n"
-" color_space = color_space or image:ColorSpace() \n"
-" data_type = data_type or image:DataType() \n"
-" \n"
-" -- callback to calculate parameters based on source image \n"
-" if type(width) == \"function\" then width = width(image) end \n"
-" if type(height) == \"function\" then height = height(image) end \n"
-" if type(color_space) == \"function\" then color_space = color_space(image) end \n"
-" if type(data_type) == \"function\" then data_type = data_type(image) end \n"
-" \n"
-" -- create a new image \n"
-" new_image = im.ImageCreate(width, height, color_space, data_type) \n"
-" image:CopyAttributes(new_image) \n"
-" return new_image \n"
-"end \n"
- };
-
- if (luaL_loadbuffer(L, data, strlen(data), "reg_image")==0) lua_pcall(L, 0, 0, 0);
-}
-
void imlua_open_image (lua_State *L)
{
/* "im" table is at the top of the stack */
createmeta(L);
luaL_register(L, NULL, imimage_lib);
- reg_image(L);
+#ifdef TEC_BIGENDIAN
+#ifdef TEC_64
+#include "loh/im_image_be64.loh"
+#else
+#include "loh/im_image_be32.loh"
+#endif
+#else
+#ifdef TEC_64
+#ifdef WIN64
+#include "loh/im_image_le64w.loh"
+#else
+#include "loh/im_image_le64.loh"
+#endif
+#else
+#include "loh/im_image.loh"
+#endif
+#endif
}
diff --git a/src/lua5/loh/im_fftw.loh b/src/lua5/loh/im_fftw.loh
index 4f45bcc..9e7c78a 100644
--- a/src/lua5/loh/im_fftw.loh
+++ b/src/lua5/loh/im_fftw.loh
@@ -17,86 +17,93 @@ static const unsigned char B1[]={
111,110, 0, 4, 3, 0, 0, 0,105,109, 0, 4, 7, 0, 0, 0, 67, 70, 76, 79,
65, 84, 0, 4, 11, 0, 0, 0, 80,114,111, 99,101,115,115, 70, 70, 84, 0, 4,
12, 0, 0, 0, 80,114,111, 99,101,115,115, 73, 70, 70, 84, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 7, 0, 0, 0, 20, 0, 0, 0, 0, 5, 0, 9, 17, 0, 0, 0,
+ 0, 0, 0, 0, 8, 0, 0, 0, 25, 0, 0, 0, 0, 5, 0, 9, 17, 0, 0, 0,
69, 1, 0, 0, 70, 1,128, 2,133, 65, 0, 0,192, 1,128, 2,156, 65, 0, 1,
133, 1, 0, 0,192, 1, 0, 0, 1,130, 0, 0,213, 1,130, 3, 36, 2, 0, 0,
0, 0,128, 0, 0, 0, 0, 1, 0, 0,128, 1, 0, 0, 0, 2, 0, 0,128, 2,
137, 1,130, 3, 30, 0,128, 0, 3, 0, 0, 0, 4, 3, 0, 0, 0,105,109, 0,
4, 7, 0, 0, 0, 97,115,115,101,114,116, 0, 4, 4, 0, 0, 0, 78,101,119,
- 0, 1, 0, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 19, 0, 0, 0, 5, 1, 7,
- 8, 17, 0, 0, 0,133, 0, 0, 0,134, 64, 64, 1,192, 0, 0, 0, 4, 1, 0,
+ 0, 1, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 24, 0, 0, 0, 5, 1, 7,
+ 8, 23, 0, 0, 0,133, 0, 0, 0,134, 64, 64, 1,192, 0, 0, 0, 4, 1, 0,
0, 68, 1,128, 0,132, 1, 0, 1,196, 1,128, 1,156,128, 0, 3,196, 0, 0,
2, 0, 1, 0, 0, 64, 1, 0, 1,133,129, 0, 0,192, 1,128, 0,156, 1, 0,
- 1,220, 64, 0, 0,158, 0, 0, 1, 30, 0,128, 0, 3, 0, 0, 0, 4, 3, 0,
- 0, 0,105,109, 0, 4, 17, 0, 0, 0, 73,109, 97,103,101, 67,114,101, 97,116,
-101, 66, 97,115,101,100, 0, 4, 7, 0, 0, 0,117,110,112, 97, 99,107, 0, 0,
- 0, 0, 0, 17, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14,
- 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0, 17,
- 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0, 17,
- 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 3, 0, 0, 0, 10,
- 0, 0, 0,115,114, 99, 95,105,109, 97,103,101, 0, 0, 0, 0, 0, 16, 0, 0,
- 0, 4, 0, 0, 0, 97,114,103, 0, 0, 0, 0, 0, 16, 0, 0, 0, 10, 0, 0,
- 0,100,115,116, 95,105,109, 97,103,101, 0, 8, 0, 0, 0, 16, 0, 0, 0, 5,
- 0, 0, 0, 6, 0, 0, 0,119,105,100,116,104, 0, 7, 0, 0, 0,104,101,105,
-103,104,116, 0, 12, 0, 0, 0, 99,111,108,111,114, 95,115,112, 97, 99,101, 0,
- 10, 0, 0, 0,100, 97,116, 97, 95,116,121,112,101, 0, 5, 0, 0, 0,102,117,
-110, 99, 0, 17, 0, 0, 0, 8, 0, 0, 0, 8, 0, 0, 0, 9, 0, 0, 0, 9,
- 0, 0, 0, 9, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12, 0, 0, 0, 12,
- 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 19,
- 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 20, 0, 0, 0, 6, 0, 0, 0, 9,
- 0, 0, 0,102,117,110, 99,110, 97,109,101, 0, 0, 0, 0, 0, 16, 0, 0, 0,
- 6, 0, 0, 0,119,105,100,116,104, 0, 0, 0, 0, 0, 16, 0, 0, 0, 7, 0,
- 0, 0,104,101,105,103,104,116, 0, 0, 0, 0, 0, 16, 0, 0, 0, 12, 0, 0,
- 0, 99,111,108,111,114, 95,115,112, 97, 99,101, 0, 0, 0, 0, 0, 16, 0, 0,
- 0, 10, 0, 0, 0,100, 97,116, 97, 95,116,121,112,101, 0, 0, 0, 0, 0, 16,
- 0, 0, 0, 5, 0, 0, 0,102,117,110, 99, 0, 2, 0, 0, 0, 16, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 41, 0, 0, 0, 0, 5, 0, 11,
- 22, 0, 0, 0, 69, 1, 0, 0, 70, 1,128, 2,133, 65, 0, 0,192, 1,128, 2,
- 5,130, 0, 0, 6,194, 64, 4, 65, 2, 1, 0,128, 2, 0, 0, 28, 2,128, 1,
-156, 65, 0, 0,133, 1, 0, 0,192, 1, 0, 0, 1, 66, 1, 0,213, 1,130, 3,
- 36, 2, 0, 0, 0, 0,128, 0, 0, 0, 0, 1, 0, 0,128, 1, 0, 0, 0, 2,
- 0, 0,128, 2,137, 1,130, 3, 30, 0,128, 0, 6, 0, 0, 0, 4, 3, 0, 0,
- 0,105,109, 0, 4, 7, 0, 0, 0, 97,115,115,101,114,116, 0, 4, 7, 0, 0,
- 0,115,116,114,105,110,103, 0, 4, 7, 0, 0, 0,102,111,114,109, 97,116, 0,
- 4, 24, 0, 0, 0,117,110,100,101,102,105,110,101,100, 32,102,117,110, 99,116,
-105,111,110, 32, 96, 37,115, 39, 0, 4, 4, 0, 0, 0, 78,101,119, 0, 1, 0,
- 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 40, 0, 0, 0, 5, 2, 7, 10, 18, 0,
- 0, 0,197, 0, 0, 0,198, 64,192, 1, 0, 1, 0, 0, 68, 1, 0, 0,132, 1,
-128, 0,196, 1, 0, 1, 4, 2,128, 1,220,128, 0, 3, 4, 1, 0, 2, 64, 1,
- 0, 0,128, 1,128, 0,192, 1,128, 1, 5,130, 0, 0, 64, 2, 0, 1, 28, 2,
- 0, 1, 28, 65, 0, 0,222, 0, 0, 1, 30, 0,128, 0, 3, 0, 0, 0, 4, 3,
- 0, 0, 0,105,109, 0, 4, 17, 0, 0, 0, 73,109, 97,103,101, 67,114,101, 97,
-116,101, 66, 97,115,101,100, 0, 4, 7, 0, 0, 0,117,110,112, 97, 99,107, 0,
- 0, 0, 0, 0, 18, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0,
- 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0,
- 38, 0, 0, 0, 38, 0, 0, 0, 38, 0, 0, 0, 38, 0, 0, 0, 38, 0, 0, 0,
- 38, 0, 0, 0, 38, 0, 0, 0, 38, 0, 0, 0, 39, 0, 0, 0, 40, 0, 0, 0,
- 4, 0, 0, 0, 11, 0, 0, 0,115,114, 99, 95,105,109, 97,103,101, 49, 0, 0,
- 0, 0, 0, 17, 0, 0, 0, 11, 0, 0, 0,115,114, 99, 95,105,109, 97,103,101,
- 50, 0, 0, 0, 0, 0, 17, 0, 0, 0, 4, 0, 0, 0, 97,114,103, 0, 0, 0,
- 0, 0, 17, 0, 0, 0, 10, 0, 0, 0,100,115,116, 95,105,109, 97,103,101, 0,
- 8, 0, 0, 0, 17, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0,119,105,100,116,
-104, 0, 7, 0, 0, 0,104,101,105,103,104,116, 0, 12, 0, 0, 0, 99,111,108,
-111,114, 95,115,112, 97, 99,101, 0, 10, 0, 0, 0,100, 97,116, 97, 95,116,121,
-112,101, 0, 5, 0, 0, 0,102,117,110, 99, 0, 22, 0, 0, 0, 27, 0, 0, 0,
- 27, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0,
- 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 33, 0, 0, 0,
- 33, 0, 0, 0, 33, 0, 0, 0, 33, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0,
+ 1,220,128, 0, 0,218, 0, 0, 0, 22,192, 0,128, 0, 1,128, 1, 64, 1, 0,
+ 1, 30, 1,128, 1, 22, 0, 0,128,158, 0, 0, 1, 30, 0,128, 0, 3, 0, 0,
+ 0, 4, 3, 0, 0, 0,105,109, 0, 4, 17, 0, 0, 0, 73,109, 97,103,101, 67,
+114,101, 97,116,101, 66, 97,115,101,100, 0, 4, 7, 0, 0, 0,117,110,112, 97,
+ 99,107, 0, 0, 0, 0, 0, 23, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15,
+ 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15,
+ 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 18,
+ 0, 0, 0, 18, 0, 0, 0, 18, 0, 0, 0, 19, 0, 0, 0, 19, 0, 0, 0, 20,
+ 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 20, 0, 0, 0, 22, 0, 0, 0, 24,
+ 0, 0, 0, 4, 0, 0, 0, 10, 0, 0, 0,115,114, 99, 95,105,109, 97,103,101,
+ 0, 0, 0, 0, 0, 22, 0, 0, 0, 4, 0, 0, 0, 97,114,103, 0, 0, 0, 0,
+ 0, 22, 0, 0, 0, 10, 0, 0, 0,100,115,116, 95,105,109, 97,103,101, 0, 8,
+ 0, 0, 0, 22, 0, 0, 0, 4, 0, 0, 0,114,101,116, 0, 15, 0, 0, 0, 22,
+ 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0,119,105,100,116,104, 0, 7, 0, 0,
+ 0,104,101,105,103,104,116, 0, 12, 0, 0, 0, 99,111,108,111,114, 95,115,112,
+ 97, 99,101, 0, 10, 0, 0, 0,100, 97,116, 97, 95,116,121,112,101, 0, 5, 0,
+ 0, 0,102,117,110, 99, 0, 17, 0, 0, 0, 9, 0, 0, 0, 9, 0, 0, 0, 10,
+ 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 13, 0, 0, 0, 13, 0, 0, 0, 13,
+ 0, 0, 0, 13, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24,
+ 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 25, 0, 0, 0, 6,
+ 0, 0, 0, 9, 0, 0, 0,102,117,110, 99,110, 97,109,101, 0, 0, 0, 0, 0,
+ 16, 0, 0, 0, 6, 0, 0, 0,119,105,100,116,104, 0, 0, 0, 0, 0, 16, 0,
+ 0, 0, 7, 0, 0, 0,104,101,105,103,104,116, 0, 0, 0, 0, 0, 16, 0, 0,
+ 0, 12, 0, 0, 0, 99,111,108,111,114, 95,115,112, 97, 99,101, 0, 0, 0, 0,
+ 0, 16, 0, 0, 0, 10, 0, 0, 0,100, 97,116, 97, 95,116,121,112,101, 0, 0,
+ 0, 0, 0, 16, 0, 0, 0, 5, 0, 0, 0,102,117,110, 99, 0, 2, 0, 0, 0,
+ 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 50, 0, 0, 0,
+ 0, 5, 0, 11, 22, 0, 0, 0, 69, 1, 0, 0, 70, 1,128, 2,133, 65, 0, 0,
+192, 1,128, 2, 5,130, 0, 0, 6,194, 64, 4, 65, 2, 1, 0,128, 2, 0, 0,
+ 28, 2,128, 1,156, 65, 0, 0,133, 1, 0, 0,192, 1, 0, 0, 1, 66, 1, 0,
+213, 1,130, 3, 36, 2, 0, 0, 0, 0,128, 0, 0, 0, 0, 1, 0, 0,128, 1,
+ 0, 0, 0, 2, 0, 0,128, 2,137, 1,130, 3, 30, 0,128, 0, 6, 0, 0, 0,
+ 4, 3, 0, 0, 0,105,109, 0, 4, 7, 0, 0, 0, 97,115,115,101,114,116, 0,
+ 4, 7, 0, 0, 0,115,116,114,105,110,103, 0, 4, 7, 0, 0, 0,102,111,114,
+109, 97,116, 0, 4, 24, 0, 0, 0,117,110,100,101,102,105,110,101,100, 32,102,
+117,110, 99,116,105,111,110, 32, 96, 37,115, 39, 0, 4, 4, 0, 0, 0, 78,101,
+119, 0, 1, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 49, 0, 0, 0, 5, 2,
+ 7, 10, 24, 0, 0, 0,197, 0, 0, 0,198, 64,192, 1, 0, 1, 0, 0, 68, 1,
+ 0, 0,132, 1,128, 0,196, 1, 0, 1, 4, 2,128, 1,220,128, 0, 3, 4, 1,
+ 0, 2, 64, 1, 0, 0,128, 1,128, 0,192, 1,128, 1, 5,130, 0, 0, 64, 2,
+ 0, 1, 28, 2, 0, 1, 28,129, 0, 0, 26, 1, 0, 0, 22,192, 0,128, 64, 1,
+ 0, 2,128, 1,128, 1, 94, 1,128, 1, 22, 0, 0,128,222, 0, 0, 1, 30, 0,
+128, 0, 3, 0, 0, 0, 4, 3, 0, 0, 0,105,109, 0, 4, 17, 0, 0, 0, 73,
+109, 97,103,101, 67,114,101, 97,116,101, 66, 97,115,101,100, 0, 4, 7, 0, 0,
+ 0,117,110,112, 97, 99,107, 0, 0, 0, 0, 0, 24, 0, 0, 0, 40, 0, 0, 0,
40, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0, 40, 0, 0, 0,
- 41, 0, 0, 0, 6, 0, 0, 0, 9, 0, 0, 0,102,117,110, 99,110, 97,109,101,
- 0, 0, 0, 0, 0, 21, 0, 0, 0, 6, 0, 0, 0,119,105,100,116,104, 0, 0,
- 0, 0, 0, 21, 0, 0, 0, 7, 0, 0, 0,104,101,105,103,104,116, 0, 0, 0,
- 0, 0, 21, 0, 0, 0, 12, 0, 0, 0, 99,111,108,111,114, 95,115,112, 97, 99,
-101, 0, 0, 0, 0, 0, 21, 0, 0, 0, 10, 0, 0, 0,100, 97,116, 97, 95,116,
-121,112,101, 0, 0, 0, 0, 0, 21, 0, 0, 0, 5, 0, 0, 0,102,117,110, 99,
- 0, 2, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 20, 0, 0,
- 0, 41, 0, 0, 0, 45, 0, 0, 0, 45, 0, 0, 0, 45, 0, 0, 0, 46, 0, 0,
- 0, 46, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0, 0, 46, 0, 0,
- 0, 47, 0, 0, 0, 47, 0, 0, 0, 47, 0, 0, 0, 48, 0, 0, 0, 48, 0, 0,
- 0, 48, 0, 0, 0, 48, 0, 0, 0, 2, 0, 0, 0, 17, 0, 0, 0, 79,110,101,
- 83,111,117,114, 99,101, 79,110,101, 68,101,115,116, 0, 1, 0, 0, 0, 17, 0,
- 0, 0, 18, 0, 0, 0, 84,119,111, 83,111,117,114, 99,101,115, 79,110,101, 68,
-101,115,116, 0, 2, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,
+ 40, 0, 0, 0, 40, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0,
+ 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0, 43, 0, 0, 0,
+ 44, 0, 0, 0, 44, 0, 0, 0, 45, 0, 0, 0, 45, 0, 0, 0, 45, 0, 0, 0,
+ 45, 0, 0, 0, 47, 0, 0, 0, 49, 0, 0, 0, 5, 0, 0, 0, 11, 0, 0, 0,
+115,114, 99, 95,105,109, 97,103,101, 49, 0, 0, 0, 0, 0, 23, 0, 0, 0, 11,
+ 0, 0, 0,115,114, 99, 95,105,109, 97,103,101, 50, 0, 0, 0, 0, 0, 23, 0,
+ 0, 0, 4, 0, 0, 0, 97,114,103, 0, 0, 0, 0, 0, 23, 0, 0, 0, 10, 0,
+ 0, 0,100,115,116, 95,105,109, 97,103,101, 0, 8, 0, 0, 0, 23, 0, 0, 0,
+ 4, 0, 0, 0,114,101,116, 0, 16, 0, 0, 0, 23, 0, 0, 0, 5, 0, 0, 0,
+ 6, 0, 0, 0,119,105,100,116,104, 0, 7, 0, 0, 0,104,101,105,103,104,116,
+ 0, 12, 0, 0, 0, 99,111,108,111,114, 95,115,112, 97, 99,101, 0, 10, 0, 0,
+ 0,100, 97,116, 97, 95,116,121,112,101, 0, 5, 0, 0, 0,102,117,110, 99, 0,
+ 22, 0, 0, 0, 32, 0, 0, 0, 32, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0,
+ 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0, 35, 0, 0, 0,
+ 35, 0, 0, 0, 38, 0, 0, 0, 38, 0, 0, 0, 38, 0, 0, 0, 38, 0, 0, 0,
+ 49, 0, 0, 0, 49, 0, 0, 0, 49, 0, 0, 0, 49, 0, 0, 0, 49, 0, 0, 0,
+ 49, 0, 0, 0, 49, 0, 0, 0, 50, 0, 0, 0, 6, 0, 0, 0, 9, 0, 0, 0,
+102,117,110, 99,110, 97,109,101, 0, 0, 0, 0, 0, 21, 0, 0, 0, 6, 0, 0,
+ 0,119,105,100,116,104, 0, 0, 0, 0, 0, 21, 0, 0, 0, 7, 0, 0, 0,104,
+101,105,103,104,116, 0, 0, 0, 0, 0, 21, 0, 0, 0, 12, 0, 0, 0, 99,111,
+108,111,114, 95,115,112, 97, 99,101, 0, 0, 0, 0, 0, 21, 0, 0, 0, 10, 0,
+ 0, 0,100, 97,116, 97, 95,116,121,112,101, 0, 0, 0, 0, 0, 21, 0, 0, 0,
+ 5, 0, 0, 0,102,117,110, 99, 0, 2, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0,
+ 0, 18, 0, 0, 0, 25, 0, 0, 0, 50, 0, 0, 0, 54, 0, 0, 0, 54, 0, 0,
+ 0, 54, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0, 0, 55, 0, 0,
+ 0, 55, 0, 0, 0, 55, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0, 0, 56, 0, 0,
+ 0, 57, 0, 0, 0, 57, 0, 0, 0, 57, 0, 0, 0, 57, 0, 0, 0, 2, 0, 0,
+ 0, 17, 0, 0, 0, 79,110,101, 83,111,117,114, 99,101, 79,110,101, 68,101,115,
+116, 0, 1, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 84,119,111, 83,111,117,
+114, 99,101,115, 79,110,101, 68,101,115,116, 0, 2, 0, 0, 0, 17, 0, 0, 0,
+ 0, 0, 0, 0,
};
if (luaL_loadbuffer(L,(const char*)B1,sizeof(B1),"../obj/imlua_fftw51/im_fftw.lo")==0) lua_call(L, 0, 0);