imagez load-image-resource抱怨“没有实现方法:: as-image”

时间:2017-02-27 15:35:13

标签: clojure

在我的Mac上使用[net.mikera/imagez "0.12.0"]运行示例代码加载图片时,我得到一个异常: user> (def ant (load-image-resource "mikera/image/samples/Ant.png")) CompilerException java.lang.IllegalArgumentException: No implementation of method: :as-image of protocol: #'mikera.image.protocols/ImageResource found for class: nil, compiling:(form-init214709365644880775.clj:59:16)

我在Leiningen / Luminus项目中运行此代码。

也许我错过了使用图像的一些依赖项?

我的java版本: java version "1.8.0_101" Java(TM) SE Runtime Environment (build 1.8.0_101-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

2 个答案:

答案 0 :(得分:2)

修复创建名为resources的目录。它将是您可能已拥有src目录的兄弟。把你的文件" Ant.png"在这个目录中。然后你可以简单地说:

(def ant (load-image-resource "Ant.png"))

答案 1 :(得分:1)

您正在使用的库正在使用clojure函数resource来加载图像。由于文件Ant.png不在资源路径上,因此对resource的调用将返回nil,这就是您看到此消息的原因。因此,您需要在project.clj

中按如下方式添加图片的路径
:resource-paths ["/full/path/to/mikera/image/samples"]

然后在您的代码中,将文件引用为:

(def ant (load-image-resource "Ant.png"))