// Laplacian Filter //@param1:scale 'scale' 1 0.1 10 5 0.1 src = 0; input_info(src, w, h) ? ( project_w = w; project_h = h; ); // clear frame-buffer gfx_fillrect(0, 0, w, h); colorspace = 'RGBA'; // accum-buffer img = gfx_img_alloc(w, h, 1); gfx_dest = img; gfx_r = gfx_g = gfx_b = 0; gfx_fillrect(0, 0, w, h); // Laplacian Filtering (4-dir) ofs = 1; mode_bkup = gfx_mode; gfx_mode = 1; // blend: add gfx_a = 1/4; // depth scaling 1 -> 1/4 x = -ofs; y = 0; gfx_blit(src, 1, x, y, w, h); x = ofs; y = 0; gfx_blit(src, 1, x, y, w, h); x = 0; y = -ofs; gfx_blit(src, 1, x, y, w, h); x = 0; y = ofs; gfx_blit(src, 1, x, y, w, h); gfx_a = -1; // sub x = y = 0; gfx_blit(src, 1, x, y, w, h); // Value Scaling gfx_mode = 1; gfx_dest = -1; // dest: frame-buffer gfx_a = 4 * scale; // scaling 1/4 -> 1 -> amp gfx_blit(img); // cleanup gfx_mode = mode_bkup; gfx_img_free(img);