正确编码图像处理工具

时间:2012-08-12 04:16:40

标签: java user-interface image-processing

我们正在用Java做一个图像处理项目。用户界面提供的工具包括:矩形选择和魔棒工具。

现在, 有一节课: ImageView

/*Other classes can set image, this class will draw the image*/
public class ImageView extends JPanel{

/*It resizes the image to fit the panel and draws the image on the panel.*/
public void setImage(BufferedImage image){/*code*/}

}

每个工具都被视为一个单独的类,扩展 ImageView 。 例如: 矩形选择工具:

/*It has a function which allows the user to draw rectangle around the image, I am    not going to write the code here because it is long and unnecessary*/
public class ResizableRectangleView extends ImageView {

/*It returns the rectangle drawn by the user*/
public Rectangle getRectange(){return rectangle;}

}

另一个类 UIController 根据用户选择的工具创建“工具”。然后在GUI中显示JPanel(工具或视图)(例如:ResizableRectangleView或其他一些视图)。然后用户可以绘制矩形(在ResizableRectangleView的情况下)。

对于每个工具,都会有一个单独的类。每当用户选择工具时,都会创建一个新对象,向该工具提供一个图像,然后将工具(视图)添加到UI中。

我不喜欢这种做法。我的问题是,像Gimp和Photoshop这样的程序如何允许在同一图像/图层上使用多个工具?我该怎么办?

非常感谢包含组件的框图(显示数据和命令的流程)。

0 个答案:

没有答案