Mercurial > rlm
view src/rlm/clipboard.clj @ 6:b8bbb0dbda7b
merging
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Thu, 01 Mar 2012 05:55:59 -0700 |
parents | 78a630e650d2 |
children |
line wrap: on
line source
1 (ns rlm.clipboard2 (:import java.awt.datatransfer.Transferable)3 (:import java.awt.Toolkit)4 (:import sun.awt.X11.XClipboard)5 (:import java.awt.datatransfer.DataFlavor)6 (:use [clojure.contrib [duck-streams :only [file-str]]])7 (:use rlm.shell-inspect))9 (import '(javax.imageio.stream FileImageOutputStream))10 (import '(javax.imageio ImageWriteParam IIOImage))11 (import '(javax.imageio ImageIO) )12 (import '(java.io File) )14 (def clip (.getSystemClipboard (Toolkit/getDefaultToolkit)))16 (defn get-clipboard-image17 "if the clipboard has an image, return it"18 []19 (.getTransferData20 (.getContents21 (.getSystemClipboard22 (Toolkit/getDefaultToolkit)) nil)23 DataFlavor/imageFlavor))26 (def *ext* "jpg")28 (defn writeJpg29 "WTF is this shit?!"30 [image #^File target quality]31 (let [jpgWriter (.next (ImageIO/getImageWritersByFormatName *ext*))]32 (doto (.getDefaultWriteParam jpgWriter)33 (.setCompressionMode ImageWriteParam/MODE_EXPLICIT)34 (.setCompressionQuality quality))35 (doto jpgWriter36 (.setOutput (FileImageOutputStream. target))37 (.write (IIOImage. image nil nil))38 (.dispose))))41 (defn save-clipboard42 [target]43 (writeJpg44 (get-clipboard-image)45 (file-str target)46 1))48 (def counter49 (let [count (atom 0)]50 (fn [] (swap! count inc))))53 (defn clipsave []54 (save-clipboard (str "/home/r/Desktop/cedba/homo/" (counter) ".jpg")))57 (if (command-line?) (clipsave))