;; Pixelate effect - creates blocky pixels
(require-primitives "image")

(define-effect pixelate
  :params (
    (block_size :type int :default 8 :range [2 64])
  )
  (let* ((w (image:width frame))
         (h (image:height frame))
         (small-w (max 1 (floor (/ w block_size))))
         (small-h (max 1 (floor (/ h block_size))))
         (small (image:resize frame small-w small-h "area")))
    (image:resize small w h "nearest")))
