# HG changeset patch # User Robert McIntyre # Date 1339567800 18000 # Node ID e9a63daf680a134e061713ca13763d63ee86cab7 # Parent 4c43b2b8d3c052aca2e3d335db52af2d69e79f8b created function to deconstruct image into tiles and translate into gb-rgb color space. diff -r 4c43b2b8d3c0 -r e9a63daf680a clojure/com/aurellem/run/image.clj --- a/clojure/com/aurellem/run/image.clj Tue Jun 12 10:12:25 2012 -0500 +++ b/clojure/com/aurellem/run/image.clj Wed Jun 13 01:10:00 2012 -0500 @@ -281,3 +281,35 @@ (filter (fn [[r g b]] (= (max r g b) r ))(set (vals gb-color-map)))) + +(def test-image + (ImageIO/read + (File. user-home "/proj/vba-clojure/images/test-gb-image.png"))) + +(defn rgb->triplet [rgb] + (let [r (bit-shift-right (bit-and rgb 0xFF0000) 16) + g (bit-shift-right (bit-and rgb 0xFF00) 8) + b (bit-and rgb 0xFF)] + [r g b])) + +(def reverse-gb-color-map + (zipmap (vals gb-color-map) + (keys gb-color-map))) + +(defn vga-rgb->gb-rgb [[r g b]] + (reverse-gb-color-map [r g b])) + +(defn gb-tiles [^BufferedImage image] + (for [tile (range 360)] + (for [x (range 8) y (range 8)] + (vga-rgb->gb-rgb + (rgb->triplet + (.getRGB image (+ x (rem (* tile 8 8) 160)) + (+ y (int (/ (* tile 8 8) 144))))))))) + + +(defn display-image-kernel [^BufferedImage image] + + + + ) \ No newline at end of file diff -r 4c43b2b8d3c0 -r e9a63daf680a images/test-gb-image.png Binary file images/test-gb-image.png has changed