diff --git a/factory.c b/factory.c index 6a085a30..75e7cd75 100644 --- a/factory.c +++ b/factory.c @@ -87,8 +87,10 @@ int L_GetPictureSize(lua_State* L) int L_PutPicturePixel(lua_State* L) { - Pixel_in_current_layer(lua_tonumber(L, 1), lua_tonumber(L, 2), - lua_tonumber(L, 3)); + int x = lua_tonumber(L,1); + int y = lua_tonumber(L,2); + int c = lua_tonumber(L,3); + Pixel_figure_permanent(x, y, c); return 0; // no values returned for lua } @@ -232,7 +234,7 @@ void Button_Brush_Factory(void) if(message) Verbose_error_message(message); else - Warning_message("Unknown error loading script!"); + Warning_message("Unknown error running script!"); } lua_close(L); diff --git a/scripts/aafilter.lua b/scripts/aafilter.lua new file mode 100644 index 00000000..9a199f93 --- /dev/null +++ b/scripts/aafilter.lua @@ -0,0 +1,25 @@ +-- Get the picture size +w, h = getpicturesize(); + +-- Here is the filtering matrix + matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; + +-- Loop trough all the pixels +-- To make this script simpler we don't handle the picture borders +-- (the matrix would get pixels outside the picture space) +-- for var = start_value, end_value, step do ... +for y = 1, h - 2, 1 do + for x = 1, w - 2, 1 do + filtered = + matrix[1][1] * getpicturepixel(x - 1, y - 1) + + matrix[1][2] * getpicturepixel(x , y - 1) + + matrix[1][3] * getpicturepixel(x + 1, y - 1) + + matrix[2][1] * getpicturepixel(x - 1, y ) + + matrix[2][2] * getpicturepixel(x , y ) + + matrix[2][3] * getpicturepixel(x + 1, y ) + + matrix[3][1] * getpicturepixel(x - 1, y + 1) + + matrix[3][2] * getpicturepixel(x , y + 1) + + matrix[3][3] * getpicturepixel(x + 1, y + 1); + putpicturepixel(x,y,filtered); + end +end