proper day 20
This commit is contained in:
@@ -26,20 +26,21 @@
|
||||
(let* [(new-width (+ (matrix-width image) 4))
|
||||
(new-height (+ (matrix-height image) 4))
|
||||
(new-image (filled-matrix new-width new-height 0))
|
||||
(top-left (matrix-get image 0 0 0))]
|
||||
(top-left (matrix-get image 0 0 0))
|
||||
; if palette 0 is 1, outside becomes all 1 each odd iteration
|
||||
(outside (if (= (vector-ref palette 0) 1) (mod steps 2) 0))]
|
||||
(update-matrix!
|
||||
new-image
|
||||
(lambda (x y v)
|
||||
; not really convinced that defaulting to the top left pixel is the right way to do it
|
||||
(vector-ref palette (+ (* (matrix-get image (- x 3) (- y 3) top-left) 256)
|
||||
(* (matrix-get image (- x 2) (- y 3) top-left) 128)
|
||||
(* (matrix-get image (- x 1) (- y 3) top-left) 64)
|
||||
(* (matrix-get image (- x 3) (- y 2) top-left) 32)
|
||||
(* (matrix-get image (- x 2) (- y 2) top-left) 16)
|
||||
(* (matrix-get image (- x 1) (- y 2) top-left) 8)
|
||||
(* (matrix-get image (- x 3) (- y 1) top-left) 4)
|
||||
(* (matrix-get image (- x 2) (- y 1) top-left) 2)
|
||||
(* (matrix-get image (- x 1) (- y 1) top-left) 1)))))
|
||||
(vector-ref palette (+ (* (matrix-get image (- x 3) (- y 3) outside) 256)
|
||||
(* (matrix-get image (- x 2) (- y 3) outside) 128)
|
||||
(* (matrix-get image (- x 1) (- y 3) outside) 64)
|
||||
(* (matrix-get image (- x 3) (- y 2) outside) 32)
|
||||
(* (matrix-get image (- x 2) (- y 2) outside) 16)
|
||||
(* (matrix-get image (- x 1) (- y 2) outside) 8)
|
||||
(* (matrix-get image (- x 3) (- y 1) outside) 4)
|
||||
(* (matrix-get image (- x 2) (- y 1) outside) 2)
|
||||
(* (matrix-get image (- x 1) (- y 1) outside) 1)))))
|
||||
(if (<= steps 1)
|
||||
new-image
|
||||
(enhance new-image palette (- steps 1)))))
|
||||
|
||||
Reference in New Issue
Block a user