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

[AS3]AS3将影片剪辑生成透明图片并且进行保存(php与java版)

时间:2013-08-12 11:07xwuxin.com
[AS3]AS3将影片剪辑生成透明图片并且进行保存(php与java版),这里借助as3Corelib包中的PNGEncoder类来将flash中的影片剪辑生成透明图片

这里借助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. // CuPlayer.com提示:得到 byteArray 数据 
  6. $png = $GLOBALS["HTTP_RAW_POST_DATA"]; 
  7.  
  8. /**写到服务器的images文件夹下**/ 
  9. $file = fopen("images/".$_GET['name'],"w");//打开文件准备写入 
  10. fwrite($file,$png);//写入 
  11. fclose($file);//关闭 
  12.  
  13. /**CuPlayer.com提示:返回信息**/ 
  14. echo "ok"; 
  15. ?> 

java端保存方式:

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

 

热门文章推荐

请稍候...

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

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