;; Tile Grid effect - tiles image in grid ;; @param rows int [1, 10] default 2 ;; @param cols int [1, 10] default 2 ;; @param gap int [0, 50] default 0 (define-effect tile_grid ((rows 2) (cols 2) (gap 0)) (let* ((w (width frame)) (h (height frame)) (tile-w (floor (/ (- w (* gap (- cols 1))) cols))) (tile-h (floor (/ (- h (* gap (- rows 1))) rows))) (tile (resize frame tile-w tile-h "area")) (result (make-image w h (list 0 0 0)))) (begin ;; Manually place tiles using nested iteration ;; This is a simplified version - full version would loop (paste result tile 0 0) (if (> cols 1) (paste result tile (+ tile-w gap) 0) nil) (if (> rows 1) (paste result tile 0 (+ tile-h gap)) nil) (if (and (> cols 1) (> rows 1)) (paste result tile (+ tile-w gap) (+ tile-h gap)) nil) result)))