2011-03-11 92 views
4

是否有可能將圖像/ BufferedImage轉換爲JFreeChart?JFreeChart&Image

+0

要投射/圖像轉換成圖表?我不明白這是怎麼工作的 – klonq 2011-03-11 13:57:56

+0

你想用Jfreechart製作圖片/ BufferedImages嗎? – 2011-03-11 18:03:08

回答

14

將圖像投射到JFree不是可能的。要從JFreechart創建圖像,您可以執行以下操作:

BufferedImage objBufferedImage=objJFreechart.createBufferedImage(600,800); 
ByteArrayOutputStream bas = new ByteArrayOutputStream(); 
     try { 
      ImageIO.write(objBufferedImage, "png", bas); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

byte[] byteArray=bas.toByteArray(); 

這會創建字節[]。

現在您需要從byte []創建圖像。下面是這樣做的。

InputStream in = new ByteArrayInputStream(obj); 
BufferedImage image = ImageIO.read(in); 
File outputfile = new File("image.png"); 
ImageIO.write(image, "png", outputfile); 

圖像在創建項目的地方創建(本地驅動器)。

+10

另一種從JFreeChart創建圖像的方法是使用'ChartUtilities.writeChartAsPNG(輸出流,jfreechart,x,y)'函數。 – 2011-12-18 21:38:51

+1

yannis hristofakis:這樣,你無法訪問BufferedImage。我需要這個,因爲圖表添加了一些我通過配置圖表無法擺脫的填充,所以我不得不裁剪圖像 - BufferedImage.getSubImage(...) – Buffalo 2013-11-01 14:43:55

14

JfreeChart首先獲取數據並使用通用ChartUtilities類或任何自定義實用程序類生成圖像。

ChartUtilities.writeChartAsPNG(outputstream,getDataset(), width,height); 

也許這可以幫助你:here