2011-09-22 139 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); 

否則軸線抽出該圖像。我沒有弄清楚這一點(我正在爲自己踢這個),因爲這個軸正在獲得我在圖形對象上使用的最後一個顏色,這恰好是繪製背景的。