2011-03-11 3 views
4

이미지/BufferedImage를 JFreeChart로 캐스팅 할 수 있습니까?JFreeChart 및 이미지

+0

/차트에 이미지를 변환? 어떻게 작동하는지 이해할 수 없다. – klonq

+0

Jfreechart로 이미지/BufferedImages를 만들고 싶습니까? –

답변

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 (ouputstream, jfreechart, x, y)'함수를 사용하는 것입니다. –

+1

yannis hristofakis : 그런 식으로 BufferedImage에 액세스 할 수 없습니다. 차트에 차트를 구성하여 제거 할 수없는 패딩이 추가되어 이미지를 자르려고했기 때문에 필요했습니다. BufferedImage.getSubImage (...) – Buffalo

14

JfreeChart는 먼저 데이터를 가져 와서 일반 ChartUtilities 클래스 또는 사용자 정의 유틸리티 클래스를 사용하여 이미지를 생성합니다.

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

어쩌면 이것은 당신을 도울 수 있습니다 here 당신은 캐스팅 할