我正在使用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副本以改变其大小?
答案 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中执行相同的操作。