`
sty2008boy
  • 浏览: 302455 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

JSP导出amchart 图片(参考)

 
阅读更多
源数据:
<?xml version="1.0" encoding="UTF-8"?>
<pie>
	<slice title="中国" pull_out="true">27</slice>
	<slice title="美国" pull_out="false" alpha="80">16</slice>
	<slice title="德国" pull_out="false">8</slice>
	<slice title="韩国" pull_out="false">7</slice>
	<slice title="意大利" alpha="100">6</slice>
</pie>

 

前台
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>2008年第29届北京奥运会金牌榜</title>
		<script type="text/javascript" src="ampie/swfobject.js"></script>
		<script type="text/javascript">
			 function exportImage() {
			 	 var flashMovie = document.getElementById('ampie');
		         if (flashMovie) {
		            flashMovie.exportImage('servlet/ExportImage'); 
		         }
		      } 
		</script>
	</head>

	<body>
		<div id="flashcontent">
			<strong>You need to upgrade your Flash Player</strong>
		</div>
		<script type="text/javascript">
			var so = new SWFObject("ampie/ampie.swf", "ampie", "400", "200", "8", "#FFFFFF");
			so.addVariable("path", "ampie/");
			so.addVariable("settings_file", escape("ampie/ampie_settings.xml"));
			so.addVariable("data_file", escape("ampie/ampie_data.xml"));
			so.addVariable("preloader_color", "#999999");
			so.write("flashcontent");

		</script>
		<hr noshade size="1">
		<input type="button" value="导出图片" onclick="exportImage();" />
	</body>
</html>

 

后台:

package org.lhq.ampie.demo;

import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGEncodeParam;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

/**
 * 这个Servlet处理图表页面传来的导出图片请求
 * 
 * @author 廖瀚卿
 * 
 */
@SuppressWarnings("serial")
public class ExportImage extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 页面flash的宽度和高度
		int width = Integer.parseInt(request.getParameter("width"));
		int height = Integer.parseInt(request.getParameter("height"));

		BufferedImage result = new BufferedImage(width, height,
				BufferedImage.TYPE_INT_RGB);
		// 页面是将一个个像素作为参数传递进来的,所以如果图表越大,处理时间越长
		for (int y = 0; y < height; y++) {
			int x = 0;
			String[] row = request.getParameter("r" + y).split(",");
			for (int c = 0; c < row.length; c++) {
				String[] pixel = row[c].split(":"); // 十六进制颜色数组
				int repeat = pixel.length > 1 ? Integer.parseInt(pixel[1]) : 1;
				for (int l = 0; l < repeat; l++) {
					result.setRGB(x, y, Integer.parseInt(pixel[0], 16));
					x++;
				}
			}
		}
		response.setContentType("image/jpeg");
		response.addHeader("Content-Disposition",
				"attachment; filename=\"amchart.jpg\"");
		Graphics2D g = result.createGraphics();
		// 处理图形平滑度
		g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
				RenderingHints.VALUE_ANTIALIAS_ON);
		g.drawImage(result, 0, 0, width, height, null);
		g.dispose();

		ServletOutputStream f = response.getOutputStream();
		JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(f);
		JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(result);
		param.setQuality((float) (100 / 100.0), true);// 设置图片质量,100最大,默认70
		encoder.encode(result, param);
		ImageIO.write(result, "JPEG", response.getOutputStream());// 输出图片
		f.close();
	}

}

 

分享到:
评论

相关推荐

    amChart

    `Documentation` 文件夹包含了 amChart 的官方文档,包括 API 参考、教程和指南。开发者可以通过阅读文档来了解详细的使用方法、配置选项以及解决常见问题的策略。文档是学习和优化 amChart 实现的关键资源。 **...

    amchart

    AmChart 是一款强大的数据可视化工具,它主要使用Flash技术来创建动态、交互式的图表和图形。在.NET环境中,开发者可以通过集成AmChart与XML数据结合,为应用程序增添极具吸引力的视觉表现,以直观地展示复杂数据。 ...

    amchart技术说明

    - **Export_as_image**:配置图表导出为图片的功能。 - **Error_messages**:定义数据加载失败时的错误消息样式。 - **Strings**:自定义界面文字,如菜单项和错误信息。 - **Context_menu**:启用右键菜单功能,...

    amchart c#图表文件

    c#用来做图表的免费插件代码amchart插件 图表文件

    AmChart,MSChart实例教程

    在每个教程文件的"_files"子目录中,可能包含了相关的图片、样式表或JavaScript文件,这些都是实现图表展示和交互功能所必需的资源。例如,"微软图表控件MsChart使用初探 - 顺炽国 - 博客园_files"可能包含了示例...

    amchart_javascript破解版

    amchart破解版 javascript脚本库,具有强大的画图功能,经过破解处理可以直接使用

    amchart破解下载,去掉水印

    amchart破解,去掉水印

    AmChart折线图例子(详细)

    AmChart是一款强大的JavaScript图表库,它提供了丰富的图表类型,包括折线图、柱状图、饼图、散点图等,适用于数据可视化展示。在这个"AmChart折线图例子(详细)"中,我们将深入探讨如何使用AmChart创建一个详细的...

    amchart使用方法

    - **Imageexport 图片导出** - **Legend 图例** - **LegendAlign**:设置图例的对齐方式。 - **ContextMenu 右键菜单** - **ContextMenuItems**:设置用户自定义菜单项。 - **ShowPrintContextMenu**:设置是否...

    Amchart技术说明

    2. `&lt;background&gt;`:设置背景颜色、透明度、边框属性,甚至可添加背景图片或另一个Flash。 3. `&lt;plot_area&gt;`:设定图形区域的样式,如填充色、边距等。 4. `&lt;scroller&gt;`:控制图表缩放后的滚动条属性。 5. `&lt;grid&gt;`...

    AmChart中文API

    AmChart的实例帮助文档 amcharts 要一个“配置文件”(setting.xml),一个数据文件(amile_data.xml), 一个 SWFObject.js,一个对应的 SWF 就可以生成漂亮的统计报表了 1 SWFObject v1.5的对象结构 view ...

    amchart -5 Radar & Polar(flash chart 图表)

    **标题:“amchart -5 Radar & Polar(flash chart 图表)”** **描述分析:** “Radar & Polar图”是一种数据可视化技术,用于展示多维度数据。这种图表类型包括雷达图(Radar Chart)和极坐标图(Polar Chart)。在...

    amchart破解版本 图表,很好用

    amchart破解版本 图表,很好用amchart破解版本 图表,很好用amchart破解版本 图表,很好用

    AMCHART,附带几十种示例

    AMCHART是一款强大的JavaScript图表库,它提供了丰富的图表类型和高度自定义的选项,使得开发者能够轻松地在网页上创建出交互式、视觉效果出色的图形。这个压缩包包含的资源显然是AMCHART的一个实例集,提供了多种...

    amchart -2 Line & Area(flash chart 图表)

    **描述解析:**描述中提到,这个压缩包包含了一系列示例,供用户参考和学习如何使用amchart库来创建线形图和面积图。需要注意的是,压缩包内可能不包含完整的注册码文件,需要用户单独下载。在本用户上传的资源中...

    amchart饼图 asp.net版

    "amchart饼图 asp.net版" 指的是将amcharts图表库中的饼图功能应用于ASP.NET开发环境。Amcharts是一个强大的JavaScript图表库,提供了多种类型的图表,包括饼图、柱状图、线图等,用于数据可视化。ASP.NET是微软公司...

    amchart for flex 4 破解demo 实例

    amcharts去水印 破解和amserieschart破解的应用demo此实例为amcharts的最新版本 1.8.3 2011年版。能够实现多种图标,动态加载数据。动态添加数据,在此demo种都有展示。

    amchart,amchart,amchart

    AmCharts 是一款强大的数据可视化工具,它允许开发者通过简单的配置文件来创建出各种美观且功能丰富的图表。这个压缩包文件包含的是 AmCharts 相关的资源,可能包括 JavaScript 库、示例代码、配置文件等,帮助用户...

    amchart破解版,带双击全屏事件

    amchart破解版,增加双击全屏事件,这里只包含了线图,去掉左上角amchart的logo,增加了鼠标双击整个图形面板然后全屏的功能

    C#使用amchart制作漂亮的图表

    在提供的文件名"amChart"中,可能包含了示例代码或者配置文件,你可以通过解压并查看这些文件来深入了解如何在实际项目中应用amCharts。同时,记得在实际开发中,要确保遵循良好的编程实践,如代码模块化、错误处理...

Global site tag (gtag.js) - Google Analytics