flex +java 图形保存

saveimages.mxml

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

<mx:Script>
 <![CDATA[
  


import mx.managers.CursorManager;
import mx.controls.Alert;
import mx.core.UIComponent;
import mx.collections.ArrayCollection;
import com.adobe.images.JPGEncoder;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
[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("../servlet/ImageServlet");
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="973" height="556">
   <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:Panel>

  
<mx:Button label="Get Chart Image" click="sendImageByte(myChart)" x="88" y="607"/>
 <mx:Button label="保存图片" click="sendImageByte(chartPanel)" x="240" y="607"/>
</mx:Application>


 

 

ImageServlet.java

 

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

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 org.apache.commons.io.IOUtils;


public class ImageServlet extends HttpServlet {

 /**
  * Constructor of the object.
  */
 public ImageServlet() {
  super();
 }

 /**
  * Destruction of the servlet. <br>
  */
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }

 /**
  * The doGet method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to get.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  doService(request, response);
 }

 /**
  * The doPost method of the servlet. <br>
  *
  * This method is called when a form has its tag value method equals to post.
  *
  * @param request the request send by the client to the server
  * @param response the response send by the server to the client
  * @throws ServletException if an error occurred
  * @throws IOException if an error occurred
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {

  doService(request, response);
 }

 /**
  * Initialization of the servlet. <br>
  *
  * @throws ServletException if an error occurs
  */
 public void init() throws ServletException {
  // Put your code here
 }

 private void doService(HttpServletRequest request, HttpServletResponse response) throws IOException {
 
 //printImage(request, response);
 saveImage(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();   
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值