(ns cortex.video.magick2 (:import java.io.File) (:use clojure.java.shell)) (defn images [path] (sort (rest (file-seq (File. path))))) (def base "/home/r/proj/cortex/render/worm-vision/") (defn pics [file] (images (str base file))) (defn combine-images [] (let [main-view (pics "main-view") worm-view (pics "worm-view") blue (pics "0") green (pics "1") red (pics "2") gray (pics "3") blender (let [b-pics (pics "blender")] (concat b-pics (repeat 9001 (last b-pics)))) background (repeat 9001 (File. (str base "background.png"))) targets (map #(File. (str base "out/" (format "%07d.png" %))) (range 0 (count main-view)))] (dorun (pmap (comp (fn [[background main-view worm-view red green blue gray blender target]] (println target) (sh "convert" background main-view "-geometry" "+18+17" "-composite" worm-view "-geometry" "+677+17" "-composite" green "-geometry" "+685+430" "-composite" red "-geometry" "+788+430" "-composite" blue "-geometry" "+894+430" "-composite" gray "-geometry" "+1000+430" "-composite" blender "-geometry" "+0+0" "-composite" target)) (fn [& args] (map #(.getCanonicalPath %) args))) background main-view worm-view red green blue gray blender targets))))