代码之家  ›  专栏  ›  技术社区  ›  Tim Visher

如何确定JVM上任意格式(jpeg、png等)的图像文件的尺寸?

  •  3
  • Tim Visher  · 技术社区  · 14 年前

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

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

    事先谢谢!

    2 回复  |  直到 14 年前
        1
  •  8
  •   Jake McCrary    14 年前
    (with-open [r (java.io.FileInputStream. "test.jpeg")]
      (let [image (javax.imageio.ImageIO/read r)]
        [(.getWidth image) (.getHeight image)]))
    

    with-open

    (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])
    
        2
  •  3
  •   Leonel    14 年前

    javax.io

    (import 'java.io.File)
    (import 'java.io.FileInputStream)
    (import 'javax.imageio.ImageIO)
    
    (def img  (ImageIO/read (FileInputStream. (File. "myfile.png"))))
    
    [ (.getWidth img) (.getHeight img)]