我正在尝试使用 Clojure Quil 库创建加载图像到小程序。当我存储加载图像参考并将其与image
调用一起使用时,在加载期间它可以工作。但是,当我加载并在绘图中显示时,它不起作用。
这有效:
(ns img-demo.core
(:require [quil.core :as q]))
(def img (ref nil))
(def img-url "https://dummyimage.com/100x100/2c3e50/ffffff.png")
(defn setup []
(q/background 0)
(dosync (ref-set img (q/load-image img-url))))
(q/defsketch example
:title "image demo"
:setup setup
:draw #(q/image @img 0 0)
:size [600 600])
这是行不通的,
(ns img-demo.core
(:require [quil.core :as q]))
(def img-url "https://dummyimage.com/100x100/2c3e50/ffffff.png")
(q/defsketch example
:title "image demo"
:draw #(q/image (q/load-image img-url) 0 0)
:size [600 600])
在后一种情况下,我理解load-image
应该调用 inside quil.applet/with-applet
。由于它发生在内部defsketch
,我希望它会自动处理或至少抛出一个 NPE。为什么它不工作?