Skip to content

Instantly share code, notes, and snippets.

@escherize
Created August 21, 2014 05:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save escherize/3041c5a1d9322d38152a to your computer and use it in GitHub Desktop.
Save escherize/3041c5a1d9322d38152a to your computer and use it in GitHub Desktop.
(defun blend (c1 c2)
(let ((1s (if (= 7 (length c1)) 2 1))
(2s (if (= 7 (length c2)) 2 1)))
(let ((r1 (string-to-number (substring c1 1 (+ 1 (* 1 1s))) 16))
(g1 (string-to-number (substring c1 (+ 1 (* 1 1s)) (+ 1 (* 2 1s))) 16))
(b1 (string-to-number (substring c1 (+ 1 (* 2 1s)) (+ 1 (* 3 1s))) 16))
(r2 (string-to-number (substring c2 1 (+ 1 (* 1 2s))) 16))
(g2 (string-to-number (substring c2 (+ 1 (* 1 2s)) (+ 1 (* 2 2s))) 16))
(b2 (string-to-number (substring c2 (+ 1 (* 2 2s)) (+ 1 (* 3 2s))) 16)))
(concat "#"
(format "%02x" (/ (+ r1 r2) 2))
(format "%02x" (/ (+ g1 g2) 2))
(format "%02x" (/ (+ b1 b2) 2))))))
(blend "#010203" "#321")
;=> "#020202"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment