用于裁剪图像的 Clojure GUI

Posted

技术标签:

【中文标题】用于裁剪图像的 Clojure GUI【英文标题】:Clojure GUI for cropping images 【发布时间】:2013-10-20 22:27:11 【问题描述】:

我正在制作一个 GUI,用于从图像中选择要裁剪的区域。我一直在使用 Seesaw 并且可以选择矩形区域,但找不到将图像设置为 seesaw.canvas 的背景的方法。 This 建议在标签上使用图标。我可以制作可绘制的标签,然后将其用作画布吗?有没有办法将标签和画布重叠或以某种方式使用为其内容提供背景的面板?

我认为 Quil 有这个功能,但如果我想添加小部件,我不确定如何围绕它的绘图、设置、草图形式构建 GUI。

只要我能分解现有的解决方案,我也将不胜感激。使用 GIMP 或 Photoshop 不是我想要的工作流程的一个选项:每张照片有多个裁剪,每页上的不同类型以及根据概述的图像类型添加不同的元数据。对于使用照片元数据的图书馆有什么建议吗?我打算使用 shell 接口来 exiftool,但更便携的选项可能会更好。

【问题讨论】:

drawImage() 方法是否不适合您的需求?它应该在图形对象中渲染图像,这可能是画布。 我会试一试。谢谢。 【参考方案1】:

您可以使用seesaw.graphics/image-shapejava.awt.Image(或子类)绘制到画布上:

(require '[seesaw.graphics :as g])

(defn paint-canvas [c g2d]
  (g/draw g2d (g/image-shape my-image 0 0) (g/style)))

似乎应该这样做。

另请注意,标签(以及所有 Seesaw 小部件)是可绘制的。只需像在画布上一样设置:paint 选项并涂掉即可。

【讨论】:

感谢您的回答。在我最终看一看 seesaw.graphics 之前,制作图像有点棘手。

以上是关于用于裁剪图像的 Clojure GUI的主要内容,如果未能解决你的问题,请参考以下文章

使用 angularjs 中的图像视图、裁剪和上传创建用于图像上传的 md 对话框

是否有用于图像裁剪和旋转的视图控制器,如 iOS 8 photo.app?

使用 JavaScript 裁剪图像适用于 IE,但不适用于 Firefox [重复]

Opencv和python用于自动裁剪

不使用内置函数进行图像裁剪的matlab代码

使用 Python 的 OpenCV 函数裁剪图像 [重复]