·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]将影片剪辑生成图片保存到服务器(附php和java版)代码

时间:2012-06-18 12:34xwuxin
借助as3Corelib包中的PNGEncoder类来将flash中的影片剪辑生成透明图片(没有as3Corelib的可以从其官网下载到),将图片打包成二进制流数据发送到服务器

这里借助as3Corelib包中的PNGEncoder类来将flash中的影片剪辑生成透明图片(没有as3Corelib的可以从其官网下载到),将图片打包成二进制流数据发送到服务器,在这里,小雨用php来接收flash发送过来的数据,并将数据保存为png图片存放入服务器。主要代码如下:

flash端:

  1. import flash.display.BitmapData;  
  2. import flash.display.MovieClip;  
  3. import flash.display.Sprite;  
  4. import flash.events.*;  
  5. import flash.net.*;  
  6. import flash.utils.ByteArray;  
  7. import com.adobe.images.PNGEncoder;  
  8.  
  9. /**创建xmc影片剪辑对应的位图数据对象**/  
  10. var pngSource:BitmapData = new BitmapData (xmc.width, xmc.height);  
  11. pngSource.draw(xmc);  
  12.  
  13. /**创建图片对应的字节流**/  
  14. var pngStream:ByteArray = PNGEncoder.encode(pngSource);  
  15.  
  16. /**设置数据头信息**/  
  17. var header:URLRequestHeader = new URLRequestHeader("Content-type","application/octet-stream");  
  18.  
  19. /**设置请求链接和图片文件名称**/  
  20. var pngURLRequest:URLRequest = new URLRequest("png_encoder_download.php?name=diy"+new Date().getMilliseconds()+".png");  
  21. pngURLRequest.requestHeaders.push(header);  
  22. pngURLRequest.method = URLRequestMethod.POST;  
  23. pngURLRequest.data = pngStream;  
  24.  
  25. var loader:URLLoader = new URLLoader(pngURLRequest);  
  26.  
  27. /**发送数据请求**/  
  28. loader.load(pngURLRequest);  
  29.  
  30. /**添加数据发送结束的事件处理,服务器返回的数据会放入loader的data属性中**/  
  31. loader.addEventListener(Event.COMPLETE,loaded_Handler); 

 php端保存方式:png_encoder_download.php文件

 

  1. <?php 
  2. if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))  
  3.  
  4. {  
  5.  
  6. // 得到 byteArray 数据  
  7. $png = $GLOBALS["HTTP_RAW_POST_DATA"];  
  8.  
  9. /**写到服务器的images文件夹下**/  
  10. $file = fopen("images/".$_GET['name'],"w");//打开文件准备写入  
  11. fwrite($file,$png);//写入  
  12. fclose($file);//关闭  
  13.  
  14. /**返回信息**/  
  15. echo "ok";  
  16. }  
  17. ?> 

 java端保存方式:

  1.  
  2. <%@ page contentType="text/html; charset=utf-8" language="java"%> 
  3. <%@ page import="java.util.*"%> 
  4. <%@ page import="java.io.*"%> 
  5. <%  
  6. int v;  
  7. String filePath = request.getRealPath(System.currentTimeMillis()+".jpg");  
  8. BufferedInputStream inputStream = new BufferedInputStream(request.getInputStream());  
  9. FileOutputStream outputStream = new FileOutputStream(new File(filePath));  
  10. byte [] bytes = new byte[1024];  
  11. while((v=inputStream.read(bytes))>0){  
  12. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; outputStream.write(bytes,0,v);  
  13. }  
  14. outputStream.close();  
  15. inputStream.close();  
  16. %> 

look,so easy!

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器