(with-open [r (java.io.FileInputStream. "test.jpeg")]
(let [image (javax.imageio.ImageIO/read r)]
[(.getWidth image) (.getHeight image)]))
Вы можете использовать with-open
для автоматического закрытия потока.
Вот пример использования для перебора некоторого количества файлов в каталоге. Предполагается, что все файлы в каталоге являются изображениями. Каталог примеров содержит только ваш аватар stackoverflow.
(defn files-in-dir [dir]
(filter #(not (.isDirectory %))
(.listFiles (java.io.File. dir))))
(defn figure-out-height-width
[files]
(map (fn [file]
(with-open [r (java.io.FileInputStream. file)]
(let [img (javax.imageio.ImageIO/read r)]
[file (.getWidth img) (.getHeight img)])))
files))
user>(figure-out-height-width (files-in-dir "/home/jmccrary/Downloads/pics/"))
([#<File /home/jmccrary/Downloads/pics/test.jpeg> 32 32])