Mercurial > rlm
comparison src/rlm/clipboard.clj @ 0:78a630e650d2
initial import
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Tue, 18 Oct 2011 00:57:08 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:78a630e650d2 |
---|---|
1 (ns rlm.clipboard | |
2 (: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)) | |
8 | |
9 (import '(javax.imageio.stream FileImageOutputStream)) | |
10 (import '(javax.imageio ImageWriteParam IIOImage)) | |
11 (import '(javax.imageio ImageIO) ) | |
12 (import '(java.io File) ) | |
13 | |
14 (def clip (.getSystemClipboard (Toolkit/getDefaultToolkit))) | |
15 | |
16 (defn get-clipboard-image | |
17 "if the clipboard has an image, return it" | |
18 [] | |
19 (.getTransferData | |
20 (.getContents | |
21 (.getSystemClipboard | |
22 (Toolkit/getDefaultToolkit)) nil) | |
23 DataFlavor/imageFlavor)) | |
24 | |
25 | |
26 (def *ext* "jpg") | |
27 | |
28 (defn writeJpg | |
29 "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 jpgWriter | |
36 (.setOutput (FileImageOutputStream. target)) | |
37 (.write (IIOImage. image nil nil)) | |
38 (.dispose)))) | |
39 | |
40 | |
41 (defn save-clipboard | |
42 [target] | |
43 (writeJpg | |
44 (get-clipboard-image) | |
45 (file-str target) | |
46 1)) | |
47 | |
48 (def counter | |
49 (let [count (atom 0)] | |
50 (fn [] (swap! count inc)))) | |
51 | |
52 | |
53 (defn clipsave [] | |
54 (save-clipboard (str "/home/r/Desktop/cedba/homo/" (counter) ".jpg"))) | |
55 | |
56 | |
57 (if (command-line?) (clipsave)) | |
58 |