- 浏览: 254749 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (91)
- hibernate (6)
- javaScript (9)
- flex (18)
- linux (3)
- vc (2)
- vs (0)
- arcgis (4)
- java (11)
- eclipse (5)
- php (3)
- arcgissde (3)
- arcgis server (5)
- myeclipse (1)
- spring (7)
- junit (1)
- ehcache (2)
- svn (2)
- SQL (7)
- webService (1)
- http://code.svnspot.com/ (0)
- spring security3 (8)
- maven (3)
- struts (2)
- tomcat (4)
- apache (1)
- vmware (0)
- mysql (2)
- android (2)
- jms (0)
- dbvisulizer (1)
- 百度地图 (2)
- openlayers (1)
最新评论
-
jobsccnu:
非常感谢,到处找这个代码呢
flex导出图片 -
li1045460568:
...
HibernateDao.java -
li1045460568:
[flash=200,200][flash=200,200][ ...
HibernateDao.java -
zz210891470:
会报这个错啊Exception in thread " ...
cxf webService简单例子 -
jie66989:
主要就是这个类了,这是前段时间学习的时候用的一部分,那个时候只 ...
HibernateDao.java
http://blog.chinaunix.net/uid-8532476-id-2029119.html
导出Flex组件为jpg图片
基于servlet导出Flex/Flash界面为图形文件的简单方法
关键字: flex, chart, java
使用flash能做出很好的界面或者图表(chart),但是如何将这些内容保存成图片呢,这个问题是个值得考虑的难题。本文将简单的描述一下解决思路并给出代码。
1。第一步:获取要导出的flash图形数据
通过AS3的bitmapdata类将界面上某个要截取的diplayobject转换为ByteArray,通过ExternalInterface传递给html页面中的表单。
2。第二步:将转换的位图数据传递到后台
这个是最难的部分,如果采用flex的数据服务则代价昂贵,如果采用amfphp/openphp又比较麻烦,那怎么办呢?
解决方法:将bytearray编码为base64的字符串进行http传递。
3。第三步:将客户端传来的数据转换为图形文件
既然前端传来的是base64字符串,那就需要基于java的base64解码方法,然后转换为byte[],这样就可以生成图形文件了。
下面给出需要的资源:
a)bitmapdata转换为图形ByteArray的类:
http://www.kaourantin.net/2005/10/png-encoder-in-as3.html
http://www.kaourantin.net/2005/10/more-fun-with-image-formats-in-as3.html
b)bytearray转换为base64编码的类:
http://www.dynamicflash.com/goodies/base64
c)解码base64字符串为byte[]的类:
http://www.source-code.biz/snippets/java/2.htm
关键字: flex flash jpg image chart bitmapdata jpgencoder java 转换 图
前几天看了lwz7512的 《基于servlet导出Flex/Flash界面为图形文件的简单方法》,今天有时间就实践了一下。
1.使用BitmapData将flex的某个UIComponent转换为ByteArray
2.使用JPGEncoder转换ByteArray。JPGEncoder是corelib(http://code.google.com/p/as3corelib/) 的组件。我直接导入corelib.swc却报错,幸好有源代码可以直接使用。
3.使用URLRequest发送ByteArray到服务端的java servlet
4.在servlet中使用ImageIO保存图片或者输出到response
下面是具体代码
actionscript 代码
这里使用了一个Bar Chart图表进行实验,URLRequest的myImage是我的java servlet
java 代码
printImage将图形输出到response,将会在web浏览器中看到图片。或者你可以使用saveImage保存图片到服务器。
下面的代码可以直接通过flex保存到本地
导出Flex组件为jpg图片
基于servlet导出Flex/Flash界面为图形文件的简单方法
关键字: flex, chart, java
使用flash能做出很好的界面或者图表(chart),但是如何将这些内容保存成图片呢,这个问题是个值得考虑的难题。本文将简单的描述一下解决思路并给出代码。
1。第一步:获取要导出的flash图形数据
通过AS3的bitmapdata类将界面上某个要截取的diplayobject转换为ByteArray,通过ExternalInterface传递给html页面中的表单。
2。第二步:将转换的位图数据传递到后台
这个是最难的部分,如果采用flex的数据服务则代价昂贵,如果采用amfphp/openphp又比较麻烦,那怎么办呢?
解决方法:将bytearray编码为base64的字符串进行http传递。
3。第三步:将客户端传来的数据转换为图形文件
既然前端传来的是base64字符串,那就需要基于java的base64解码方法,然后转换为byte[],这样就可以生成图形文件了。
下面给出需要的资源:
a)bitmapdata转换为图形ByteArray的类:
http://www.kaourantin.net/2005/10/png-encoder-in-as3.html
http://www.kaourantin.net/2005/10/more-fun-with-image-formats-in-as3.html
b)bytearray转换为base64编码的类:
http://www.dynamicflash.com/goodies/base64
c)解码base64字符串为byte[]的类:
http://www.source-code.biz/snippets/java/2.htm
关键字: flex flash jpg image chart bitmapdata jpgencoder java 转换 图
前几天看了lwz7512的 《基于servlet导出Flex/Flash界面为图形文件的简单方法》,今天有时间就实践了一下。
1.使用BitmapData将flex的某个UIComponent转换为ByteArray
2.使用JPGEncoder转换ByteArray。JPGEncoder是corelib(http://code.google.com/p/as3corelib/) 的组件。我直接导入corelib.swc却报错,幸好有源代码可以直接使用。
3.使用URLRequest发送ByteArray到服务端的java servlet
4.在servlet中使用ImageIO保存图片或者输出到response
下面是具体代码
actionscript 代码
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> [CDATA[ import mx.controls.Alert; import mx.core.UIComponent; import mx.collections.ArrayCollection; import com.adobe.images.JPGEncoder; [Bindable] public var expenses:ArrayCollection = new ArrayCollection( [ {Month:"Jan", Profit:2000, Expenses:1500}, {Month:"Feb", Profit:1000, Expenses:200}, {Month:"Mar", Profit:1500, Expenses:500} ] ); public function getJPGByteArray(target:UIComponent):ByteArray { var bitmapData : BitmapData = new BitmapData(target.width, target.height); bitmapData.draw(target); var jpg : JPGEncoder = new JPGEncoder(); var jpgByteArray : ByteArray = jpg.encode(bitmapData); return jpgByteArray; } public function sendImageByte(target:UIComponent):void { var request:URLRequest = new URLRequest("myImage"); request.contentType = 'applicatoin/octet-stream'; request.data = getJPGByteArray(target); request.method = URLRequestMethod.POST; navigateToURL(request, "_blank"); } ]] </mx:Script> <mx:Panel id="chartPanel" title="Bar Chart" width="300" height="400"> <mx:BarChart id="myChart" dataProvider="{expenses}" width="100%" height="100%"> <mx:verticalAxis> <mx:CategoryAxis dataProvider="{expenses}" categoryField="Month" /> </mx:verticalAxis> <mx:series> <mx:BarSeries yField="Month" xField="Profit" displayName="Profit" /> <mx:BarSeries yField="Month" xField="Expenses" displayName="Expenses" /> </mx:series> </mx:BarChart> <mx:Legend dataProvider="{myChart}"/> <mx:Button label="Get Chart Image" click="sendImageByte(myChart)"/> <mx:Button label="Get Panel Image" click="sendImageByte(chartPanel)"/> </mx:Panel> </mx:Application>
这里使用了一个Bar Chart图表进行实验,URLRequest的myImage是我的java servlet
java 代码
import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import org.apache.commons.io.IOUtils; public class ImageServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { doService(arg0, arg1); } @Override protected void doPost(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { doService(arg0, arg1); } private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException { //saveImage(request, response); printImage(request, response); } private void saveImage(HttpServletRequest request, HttpServletResponse response) throws IOException { String fileName = "D://" + System.currentTimeMillis() + ".jpg"; BufferedImage bufferedImage = ImageIO.read(request.getInputStream()); if (bufferedImage != null) { ImageIO.write(bufferedImage, "jpeg", new File(fileName)); } } private void printImage(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("image/jpeg"); response.setHeader("Content-Length:", String.valueOf(request.getInputStream().available())); ServletOutputStream sos = response.getOutputStream(); IOUtils.copy(request.getInputStream(), sos); sos.flush(); sos.close(); } }
printImage将图形输出到response,将会在web浏览器中看到图片。或者你可以使用saveImage保存图片到服务器。
下面的代码可以直接通过flex保存到本地
//var jpgenc:JPEGEncoder = new JPEGEncoder(80); //imgByteArray = jpgenc.encode(bmpd); var pngenc:PNGEncoder = new PNGEncoder(); imgByteArray = pngenc.encode(bmpd); //gets a reference to a new empty image file var fl:File = getNewImageFile(ext); //Use a FileStream to save the bytearray as bytes to the new file var fs:FileStream = new FileStream(); try{ //open file in write mode fs.open(fl,FileMode.WRITE); //write bytes from the byte array fs.writeBytes(imgByteArray); //close the file fs.close(); }catch(e:Error){ trace(e.message); }
- save_img.zip (6.9 KB)
- 下载次数: 26
发表评论
-
flex流媒体截图遇到安全沙箱问题的解决办法
2014-05-08 16:58 2266http://m.baidu.com/from=844b/bd ... -
adobe flash player无法安装,一直提示不是最新版本
2014-03-22 17:09 1108打开运行中输入regedit,在注册表中找到 HKEY_L ... -
flex导出图片
2013-05-08 20:32 1126flex导出图片功能通常是: 思路1:客户端将UICompo ... -
datagrid添加checkbox
2012-12-26 15:03 4324参考地址:http://www.flexbj.com/post ... -
flex图片背景平铺
2012-12-26 11:06 1919<mx:Image width="100%&q ... -
AIR 配置文件(*-app.xml)说明
2012-12-22 11:52 1083原文地址:http://blog.163.com/eillit ... -
FLEX里图片绕中心旋转
2012-12-21 14:51 2310原文地址:http://rss.9ria.com/?p=199 ... -
flex loadxml
2012-12-07 10:40 1123package { import flash.eve ... -
flex学习笔记-DataGrid,ComboBox AppEvent EventBus
2012-12-07 10:36 1552事件:父页面添加监听子页面触发这个时候需要设置监听的第三个参数 ... -
flex HTTPService应用
2012-12-07 10:25 3063flex和spring security搭建的时候遇到一个问题 ... -
flex学习笔记-布局
2012-12-07 10:14 4986flex中设置图片平铺 <mx:Image source ... -
spring mvc传值(json格式)
2012-11-28 14:30 6916java端: spring-servlet.xml中的部分配置 ... -
Flex获取客户端IP地址(Java)
2012-07-17 09:44 4357Flex获取客户端IP地址(Java) 博客分类: Flex ... -
Flex RemoteObject调用java方法报错--发送失败
2012-06-21 19:55 1135Flex RemoteObject调用java方法报错--发送 ... -
flash插件地址
2012-05-29 22:02 989flash插件下载地址: http://helpx.adobe ... -
flex笔记
2012-05-11 17:44 920flex中设置右键菜单的类:ContextMenu和Conte ... -
flex4破解
2012-04-25 20:53 0flex3激活码: 1377-4167-5844-4698-0 ... -
大量Flash Builder 4教程资源汇集
2011-11-28 17:27 2164FlashFlexAdobeColdFusionWordPre ...
相关推荐
本篇文章将深入探讨如何在Flex中实现图表的图片导出功能。 首先,让我们了解Flex中的图表组件。Flex提供了一系列强大的图表组件,如BarChart、LineChart、PieChart等,这些组件基于Adobe Flex SDK,可以方便地创建...
AdvancedDataGrid导出复杂表头excel
在本文中,我们将深入探讨如何在Flex环境中实现绚丽的图片显示功能。Flex是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用程序(RIA)。它提供了强大的UI组件库,使得开发人员能够创建出交互性强、视觉...
flex中dataGrid导出数据到excel中,不存在乱码问题
在Flex Air中,有时我们需要将数据导出为Excel格式,以便用户可以进行离线分析或进一步处理。然而,需要注意的是,Flex Air原生并不直接支持导出包含中文字符的Excel文件,这可能是由于早期版本的Excel文件格式处理...
在Flex开发中,有时我们需要将用户界面中的数据显示到更易于管理和分析的格式中,例如Excel。本主题将深入探讨如何在Flex中实现组件DataGrid的数据导出功能,使其能够生成Excel文件供用户下载和处理。 DataGrid是...
本文将深入探讨如何使用Flex来实现一个功能,即把Datagrid组件中的内容导出到Excel文件。 Datagrid是Flex中的一个核心组件,用于展示表格数据。它提供了丰富的功能,如排序、分页和自定义列显示。然而,有时用户...
Flex PDF导出分页是一种在Flex应用程序中生成PDF文件并实现多页显示的技术。Flex作为一个基于ActionScript和Flash Player的开发框架,常用于构建富互联网应用程序。然而,原生的Flex SDK并不直接支持PDF导出,因此...
Flex是一种基于ActionScript和Flash Player运行时的开源框架,用于构建富互联网应用程序(RIA)。...通过理解和应用这些概念,你可以创建一个功能完备的CSV导出功能,使用户能够方便地从Flex应用中导出和共享数据。
完成文件保存后,Servlet可以通过HttpServletResponse向Flex客户端返回一个响应,比如返回文件的URL,这样前端就可以根据URL显示已上传的图片。 此外,"PicUpload_Java"和"PicUpload_Flex"可能是项目中的两个关键源...
这个"flex鱼眼显示图片的例子"是一个Flex项目,它展示了如何使用Flex技术实现一个鱼眼效果的图片显示功能。鱼眼效果通常指的是将图像扭曲成类似鱼眼镜头所拍摄的弧形视野,这种效果在视觉上往往能带来独特的体验。 ...
在本场景中,我们将讨论如何在Flex中捕获组件的快照,将其转换为ByteArray,并通过JavaServlet将其导出为图片。 首先,让我们深入了解Flex中的组件快照。在Flex中,我们可以使用BitmapData类来捕获组件的视觉表示,...
同时,为了提供良好的用户体验,可以在导出过程中显示进度提示。 总的来说,Flex中的AdvanceGrid多层表头导出到Excel是一个技术挑战,需要理解组件的内部结构,熟练掌握ActionScript编程,以及熟悉Excel文件的生成...
Flex相册 Flex图片
在Flex Web应用中显示PDF文件是一项常见的需求,特别是在开发交互式文档查看或在线阅读平台时。Flex是一种基于ActionScript的开源框架,用于构建富互联网应用程序(RIA),它允许开发者创建高度交互、动态的Web界面...
本文将深入探讨如何在DataGrid中显示图片,特别是在与Spring、Hibernate和Struts等框架集成的背景下,如何处理二进制数据并将其在Flex前端呈现。 首先,让我们了解Flex的基本概念。Flex是一个基于ActionScript和...
"flex前台直接导出excel"这个话题,指的是在使用Adobe Flex这一前端框架时,如何直接在客户端生成并导出Excel文件,而不需要通过服务器端如JSP或Java进行处理。这种方式可以避免因为字符编码问题导致的乱码,同时也...
本篇将详细讲解如何在Flex页面上实现数据导出到Excel的功能。 Flex是一种基于Adobe Flash Player运行时的开放源代码框架,主要用于构建富互联网应用程序(RIA)。它允许开发者创建具有丰富用户体验的交互式应用,但...
Flex CheckList 多选组建
标题“使用FlexBuilder3制作并导出AIR1.0正式版应用”涉及到的是Adobe Flex Builder 3这款开发工具,以及Adobe Integrated Runtime (AIR) 1.0版本的应用程序开发过程。Flex Builder 3是一款基于Eclipse的IDE,专门...