image - 如何确定 JVM 上任意格式(JPEG、PNG 等)图像文件的尺寸?

标签 image clojure jvm

我想浏览一个目录并挑选出所有图像,然后根据它们的尺寸做一些事情。我可以使用哪些库来执行此操作?

我在 Clojure 工作,但 JVM 上可用的任何东西都是公平的游戏。

提前致谢!

最佳答案

(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])

关于image - 如何确定 JVM 上任意格式(JPEG、PNG 等)图像文件的尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4217896/

相关文章:

渲染时 JavaFX 图像 (PNG) 透明清晰度丢失

Clojure - 将一个序列拆分为多个序列

asynchronous - 在 clojure.core.async 中添加延迟

maven-2 - 如何告诉Maven2在新的JVM实例中一个一个地执行jUnit测试?

java - JVM 字符串存储在内存中

jquery - 如何将百分比与 Jquery 代码一起用于 Hover Fade

javascript - 如何使网页认为其图像已加载完毕?

Python PIL getdata() 方法不返回元组

clojure - 分层 leiningen 项目有优势吗?

java - Java 中的子类不继承(或覆盖)私有(private)成员?