Skip to content

Instantly share code, notes, and snippets.

@jhickner
Created July 20, 2011 21:08
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 jhickner/1095939 to your computer and use it in GitHub Desktop.
Save jhickner/1095939 to your computer and use it in GitHub Desktop.
tablecup image slicing
(import (java.io File FileInputStream)
'javax.imageio.ImageIO)
(use '[clojure.contrib.string :only (split)])
(def x-values [117 279 440 599 763 923 1083 1245])
(def base-path "/Users/jhickner/Desktop/")
(defn file-basename [file] (first (split #"\." (.getName file))))
(defn files-in-dir [dir]
(filter #(not (.isDirectory %))
(.listFiles (File. dir))))
(defn save-slice [base-name img start-x]
(let [subimg (.getSubimage img (- start-x 70) 0 155 860)
f (File. (str base-path "out/" base-name "-" start-x ".png"))]
(ImageIO/write subimg "png" f)))
(defn make-slices [file-list]
(dorun (pmap (fn [file]
(with-open [r (FileInputStream. file)]
(let [img (ImageIO/read r)]
[base-name (file-basename file)]
(doseq [x x-values]
(save-slice base-name img x)))))
file-list)))
(time (make-slices (files-in-dir (str base-path "players/"))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment