使用JFreeChart库在awt.Image上绘制轴

时间:2011-09-22 17:56:49

标签: java swing awt jfreechart

我有一个类需要能够接收图像并添加一组轴。我不想自己编写代码,而是宁愿懒惰并使用JFreeChart库。

这是我到目前为止所做的事情,据我所知,它没有做任何事情:

public void addAxis(Image sourceImage, double min, double max)
   {
      NumberAxis numAxis = new NumberAxis();
      numAxis.setRange(min, max);

      int width = sourceImage.getWidth(null);
      int height = sourceImage.getHeight(null);
      Rectangle2D size = new Rectangle(width, height);
      Graphics2D graphics = (Graphics2D) sourceImage.getGraphics();
      numAxis.draw(graphics, 0, size, size, RectangleEdge.LEFT, null);

      return;
   }

我传递给它的Image使用BufferedImage创建为TYPE_INT_ARGB

可能还有其他库更适合这种情况,但遗憾的是很难获得批准将库添加到我的项目中并且JFreeChart已经获得批准。为了其他读者的利益,请随时提及替代图书馆。

编辑:出于各种原因,我需要在图像上绘制轴,我无法在图表上绘制图像或做任何会改变图像大小的图像。

1 个答案:

答案 0 :(得分:1)

想出来,发布给任何想要做同样事情的人。

该行

numAxis.draw(graphics, 0, size, size, RectangleEdge.LEFT, null);

应该是

numAxis.draw(graphics, 20, size, size, RectangleEdge.LEFT, null);

否则从图像中提取轴。我没有弄清楚这一点(我正在为这一个做准备)因为轴正在获得我在图形对象上使用的最后一种颜色,这恰好是绘制背景。