在Clojure中使用Java库

时间:2017-05-04 11:54:11

标签: clojure

我正在使用Clojure编写图像上传系统。我使用Java库javadoc制作缩略图。

(defn upload-file [file]
  (let [file-name (file :filename)
        actual-file (file :tempfile)
        image (Thumbnails/fromFiles (java.util.ArrayList. [actual-file]))
        image-jpg (.outputFormat image "jpg")
        thumb (.forceSize image-jpg 250 150)]
        ...

我的代码更改thumb var和image-jpg var,但我希望有两个单独的图像(一个具有正常大小和拇指)。如何制作图像jpg副本以改变其大小?

1 个答案:

答案 0 :(得分:0)

您可以尝试在同一个实际文件上再次执行相同的操作。并创建一个您调用两次的函数:

(defn make-thumb [width height file]
  (let [image (Thumbnails/fromFiles (java.util.ArrayList. [file]))
        image-jpg (.outputFormat image "jpg")]
    (.forceSize image-jpg width height)))

另一种方法是深层复制image。请参阅How do you make a deep copy of an object in Java?并在Clojure中执行相同的操作。