# HG changeset patch # User Robert McIntyre # Date 1339490207 18000 # Node ID 8b8053ccb33c231d2bc3be5de106ea7bcb6e4df1 # Parent 554883a95de03b803f0007357cb77192d6f55818 generated graphical representation of the gb color map. diff -r 554883a95de0 -r 8b8053ccb33c clojure/com/aurellem/run/image.clj --- a/clojure/com/aurellem/run/image.clj Mon Jun 11 10:07:01 2012 -0500 +++ b/clojure/com/aurellem/run/image.clj Tue Jun 12 03:36:47 2012 -0500 @@ -192,5 +192,83 @@ "," ",\n")] (println out-str)))) -(defn-memo gb-color-map [] - (read-string (slurp gb-color-map-file))) \ No newline at end of file +(def gb-color-map + (read-string (slurp gb-color-map-file))) + +(import javax.imageio.stream.FileImageOutputStream) +(import '(javax.imageio ImageWriteParam IIOImage ImageIO)) + + +(defn gen-gb-color-image! [] + (let [im (BufferedImage. 181 182 BufferedImage/TYPE_INT_RGB) + pix (vec + + (reduce + concat + (map (partial + sort-by + (fn [[r g b]] + (let [s (max r g b) + det + (cond + (= s r) + (+ -1000 (- g) b) + (= s b) + (+ (- r) g) + (= s g) + (+ 1000 (- b) r))] + det))) + (partition + 181 181 [] + (sort-by + (fn euclidean-distance [[r g b]] + (Math/sqrt (+ (* r r) (* g g) (* b b)))) + (vals gb-color-map)))))) + view (cortex.sense/view-image) + target (File. user-home "proj/vba-clojure/gb-color-map.png")] + (dorun (for [x (range 181) y (range 182)] + (let [[r g b] (get pix (+ x (* 181 y)) [0 0 0]) + rgb (+ (bit-shift-left r 16) + (bit-shift-left g 8) + b)] + (.setRGB im x y rgb)))) + (view im) + (doto + (.next (ImageIO/getImageWritersByFormatName "png")) + (.setOutput (FileImageOutputStream. target)) + (.write (IIOImage. im nil nil)) + (.dispose)) + im)) + +(defn gen-gb-color-image*! [] + (let [im (BufferedImage. 213 213 BufferedImage/TYPE_INT_RGB) + squares + (vec + (for [r (range 32)] + (vec + (for [b (range 32) g (range 32)] + (gb-color-map [r g b]))))) + view (cortex.sense/view-image) + target (File. user-home "proj/vba-clojure/gb-color-map.png")] + + (dorun + (for [s-index (range 32)] + (dorun + (for [x (range 32) y (range 32)] + + (let [[r g b] ((squares s-index) (+ x (* 32 y))) + rgb (+ (bit-shift-left r 16) + (bit-shift-left g 8) + b)] + (.setRGB im + (+ 3 (* 35 (rem s-index 6)) x) + (+ 3 (* 35 (int (/ s-index 6))) y) + rgb)))))) + (view im) + (doto + (.next (ImageIO/getImageWritersByFormatName "png")) + (.setOutput (FileImageOutputStream. target)) + (.write (IIOImage. im nil nil)) + (.dispose)) + im)) + \ No newline at end of file diff -r 554883a95de0 -r 8b8053ccb33c gb-color-map.png Binary file gb-color-map.png has changed