在我的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)
答案 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"))