2011-09-22 39 views
1

我有一个类需要能够接受图像并添加一组轴。我不想自己写代码,宁可懒惰也不愿意使用JFreeChart库。使用JFreeChart库绘制awt.Image上的轴

这里是我到目前为止,这是没有做任何事情,只要我可以告诉:

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作为原料,TYPE_INT_ARGB一个BufferedImage创建。

可能有更适合于此的其他库,但不幸的是很难获得批准将库添加到我的项目,并且JFreeChart已被批准。无论如何,为了其他读者的利益,请随意提及备选库。

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

+0

你想_just_轴吗? [自定义Swing组件](http://today.java.net/pub/a/today/2007/02/22/how-to-write-custom-swing-component.html)会更好吗? – trashgod

+0

@trashgod不,它必须绘制在图像上,特别是如果我让用户选择将其保存为PNG。 –

+0

对不起,我没有关注。是否有相关的[示例](http://www.jfree.org/jfreechart/samples.html)或[demo](http://www.jfree.org/jfreechart/jfreechart-1.0.13-demo.jnlp )? – trashgod

回答

1

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

线

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

应该是

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

否则轴线抽出该图像。我没有弄清楚这一点(我正在为自己踢这个),因为这个轴正在获得我在图形对象上使用的最后一个颜色,这恰好是绘制背景的。