如何设置图像的分辨率?
How do I set an image's resolution?
我正在使用 Seesaw 与 Swing 交互。
我有一些这样定义的图标:
(def label :icon
(clojure.java.io/resource "some_image.png"))
我想以不同的分辨率呈现 "some_image.png"。如果我简单地设置边界,我只会得到图像的一部分。
如何实现?
您可以通过深入了解 Swing 来完成。基本上,将文件作为 Swing Image 进行操作。一旦您拥有所需的大小,Seesaw 的 icon
设施在可以传入的内容方面非常灵活(请参阅 https://daveray.github.io/seesaw/seesaw.icon-api.html);您可以将 Swing Image 传递给 label
函数。
(defn imagetest []
(let [w (frame :title "Image Test" :width 400 :height 400)
img (.getScaledInstance
(javax.imageio.ImageIO/read
(io/resource "racecar.gif")) 400 400 1)
lbl (label :icon img)
pnl (horizontal-panel :items [lbl])]
(config! w :content pnl)
(show! w)))
注意:我作为最终参数传递给 .getScaledInstance
的 1
用于 SCALE_DEFAULT
标志;更多信息在这里:https://docs.oracle.com/javase/7/docs/api/constant-values.html#java.awt.Image.SCALE_DEFAULT
我正在使用 Seesaw 与 Swing 交互。
我有一些这样定义的图标:
(def label :icon
(clojure.java.io/resource "some_image.png"))
我想以不同的分辨率呈现 "some_image.png"。如果我简单地设置边界,我只会得到图像的一部分。
如何实现?
您可以通过深入了解 Swing 来完成。基本上,将文件作为 Swing Image 进行操作。一旦您拥有所需的大小,Seesaw 的 icon
设施在可以传入的内容方面非常灵活(请参阅 https://daveray.github.io/seesaw/seesaw.icon-api.html);您可以将 Swing Image 传递给 label
函数。
(defn imagetest []
(let [w (frame :title "Image Test" :width 400 :height 400)
img (.getScaledInstance
(javax.imageio.ImageIO/read
(io/resource "racecar.gif")) 400 400 1)
lbl (label :icon img)
pnl (horizontal-panel :items [lbl])]
(config! w :content pnl)
(show! w)))
注意:我作为最终参数传递给 .getScaledInstance
的 1
用于 SCALE_DEFAULT
标志;更多信息在这里:https://docs.oracle.com/javase/7/docs/api/constant-values.html#java.awt.Image.SCALE_DEFAULT