(with-open [r (java.io.FileInputStream. "test.jpeg")]
(let [image (javax.imageio.ImageIO/read r)]
[(.getWidth image) (.getHeight image)]))
Vous pouvez utiliser with-open
avoir le flux automatiquement fermé.
Voici un exemple d'utilisation pour parcourir un certain nombre de fichiers dans un répertoire. Il suppose que tous les fichiers du répertoire sont des images. Le répertoire exemple contient uniquement votre avatar 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])
La première personne à combiner les deux réponses ci-dessous est acceptée! ;) –