JFreeChart生成svg格式图片,response返回

本文介绍如何在Maven项目中利用JFreeChart库生成SVG格式的图表,并通过HTTP响应发送给客户端。
摘要由CSDN通过智能技术生成

Maven依赖

 <!-- https://mvnrepository.com/artifact/batik/batik-dom -->
    <dependency>
      <groupId>batik</groupId>
      <artifactId>batik-dom</artifactId>
      <version>1.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/batik/batik-xml -->
    <dependency>
      <groupId>batik</groupId>
      <artifactId>batik-xml</artifactId>
      <version>1.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/batik/batik-util -->
    <dependency>
      <groupId>batik</groupId>
      <artifactId>batik-util</artifactId>
      <version>1.6</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/batik/batik-awt-util -->
    <dependency>
      <groupId>batik</groupId>
      <artifactId>batik-awt-util</artifa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用以下代码来生成图片并将其转换为字节数组,同时设置编码格式为UTF-8: ```java import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.IOException; import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.CategoryAxis; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.plot.CategoryPlot; import org.jfree.chart.plot.PlotOrientation; import org.jfree.chart.renderer.category.BarRenderer; import org.jfree.data.category.DefaultCategoryDataset; public class ChartGenerator { public static byte[] generateChartImage() throws IOException { // Create a dataset DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(1.0, "Series 1", "Category 1"); dataset.addValue(2.0, "Series 1", "Category 2"); dataset.addValue(3.0, "Series 1", "Category 3"); dataset.addValue(4.0, "Series 1", "Category 4"); // Create a chart JFreeChart chart = ChartFactory.createBarChart( "Chart Title", "Category", "Value", dataset, PlotOrientation.VERTICAL, false, true, false ); // Customize the chart chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue)); CategoryPlot plot = (CategoryPlot) chart.getPlot(); plot.setBackgroundPaint(Color.white); plot.setDomainGridlinePaint(Color.black); plot.setRangeGridlinePaint(Color.black); CategoryAxis domainAxis = plot.getDomainAxis(); domainAxis.setLabelFont(new Font("SansSerif", Font.BOLD, 16)); domainAxis.setTickLabelFont(new Font("SansSerif", Font.BOLD, 16)); NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); rangeAxis.setLabelFont(new Font("SansSerif", Font.BOLD, 16)); rangeAxis.setTickLabelFont(new Font("SansSerif", Font.BOLD, 16)); BarRenderer renderer = (BarRenderer) plot.getRenderer(); renderer.setDrawBarOutline(false); renderer.setBaseItemLabelGenerator(new LabelGenerator()); renderer.setBaseItemLabelsVisible(true); renderer.setBaseItemLabelFont(new Font("SansSerif", Font.BOLD, 16)); // Generate the chart image BufferedImage chartImage = chart.createBufferedImage(640, 480); // Convert the chart image to a byte array ByteArrayOutputStream chartOut = new ByteArrayOutputStream(); ChartUtilities.writeBufferedImage(chartOut, "png", chartImage); byte[] chartBytes = chartOut.toByteArray(); return chartBytes; } } ``` 上面的代码使用了JFreeChart库来生成一个带有标签的条形图,并将其转换为PNG格式的字节数组。使用`ByteArrayOutputStream`类将图像写入字节数组时,可以指定要使用的编码格式(例如UTF-8)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值