【问题标题】:Clojure read TGA witout librariesClojure 在没有库的情况下读取 TGA
【发布时间】:2018-10-09 19:49:23
【问题描述】:

我想将 TGA 文件读取到BufferedImage。没有库我怎么能做到?

现在有函数了:

(defn load-image [filename]
  (ImageIO/read (File. filename)))

此函数成功读取 jpeg 文件,但返回 nil 而不是 TGA 文件的 BufferedImage。

【问题讨论】:

  • 如果您不想使用库,可以尝试将 Java 解决方案 stackoverflow.com/questions/1514035/java-tga-loader 之一改编为 Clojure。
  • @AlephAleph It 2009的解决方案。有没有更流畅的解决方案?我可以使用什么库?我尝试使用Quil,但并没有解决阅读tga的问题。
  • 据我所知,自 2009 年以来,Java 的标准库中还没有包含 TGA,格式也没有真正改变,那么 2009 年的答案有什么问题?您可以将这些答案中的 Java 代码翻译成 Clojure。最好使用一个库来确保捕获所有极端情况 - 请参阅我的答案。

标签: clojure clojure-java-interop tga


【解决方案1】:

最简单的方法仍然是使用库,例如​​TwelveMonkeys。在您的project.clj(如果您使用 Leiningen)中,添加:

{:dependencies [... [com.twelvemonkeys.imageio/imageio-tga "3.4.1"]]}

然后,在代码中:

(ImageIO/scanForPlugins)

(defn load-image [filename]
  (ImageIO/read (File. filename)))

这适用于有效的 TGA 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2016-01-10
    • 2011-12-07
    • 1970-01-01
    • 2023-01-14
    • 1970-01-01
    • 2021-11-07
    相关资源
    最近更新 更多