JFreeChart & Image
Asked Answered
C

3

6

Is it possible to cast an image/BufferedImage to JFreeChart?

Corrigendum answered 11/3, 2011 at 12:38 Comment(2)
You want to cast/convert an image to a chart? I don't understand how that might workDestrier
Do you want to make images/BufferedImages with Jfreechart?Clobber
C
21

Casting an image to JFree is not possbile. To create an image from JFreechart you can do the following:

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();

This creates the byte[] .

Now you need to create the image from byte[]. The following does this.

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

The image gets created at the place where your project is created(local drive).

Chervil answered 10/8, 2011 at 4:51 Comment(2)
Another way to create image from JFreeChart is by using ChartUtilities.writeChartAsPNG(ouputstream,jfreechart,x,y) function.Verdi
yannis hristofakis: that way, you don't have access to the BufferedImage. I needed this because the chart adds some padding which I couldn't get rid of by configuring the chart, so I had to crop the image - BufferedImage.getSubImage(...)Ashmead
U
17

JfreeChart takes data first and generate image using generic ChartUtilities class or any customized utility class.

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

Maybe this can help you:here

Unmoral answered 7/12, 2012 at 8:6 Comment(0)
B
4

The JFreeChart object is for making images, it does not consume them and images cannot be converted into a JFreeChart object. See: http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/JFreeChart.html

Batholith answered 11/3, 2011 at 17:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.