使用amfphp1.9beta+flash9(as3)+corelib保存图片

[转载] 使用amfphp1.9beta+flash9(as3)+corelib保存图片
adobe的一些as3类库提供给google code(http://actionscript3libraries.riaforge.org/)可以随意下载...
其中的as3corelib里面包含image的png和jpg类和json(序列化数据)类包.

同时amfphp1.9beta的发布可以让你用remoting来传递amf3格式的数据.

那么有了这两个条件我们就可以用他们来直接生成png和jpg格式的图片...

使用方法也是比较简单,使用前面我提供的方法可以很方便的实现...


as3corelib里面的png和jpg类

[down=attachments/month_0709/r2007917165754.rar]点击下载此文件[/down]

as代码:
//------------------------------------------------------------------------------------
//在舞台上放一个mc名字为a,mc包含一些随意的图形
import flash.net.*;
import flash.display.*;
var hostName:String = "http://localhost/amfphp/";
var gatewayUrl:String = hostName+"gateway.php";
////////////////////////////
var bpd:BitmapData = new BitmapData(a.width, a.height);
bpd.draw(a);
//var jpegEnc:JPEGEncoder = new JPEGEncoder(80);
//var dat:ByteArray = jpegEnc.encode(bpd);
var dat:ByteArray = PNGEncoder.encode(bpd);
//
var nc:NetConnection = new NetConnection();
//nc.objectEncoding = 0;
nc.connect(gatewayUrl);
//
nc.call("SavePic.save",new Responder(onResult,onFault),dat);
//nc.call("SavePic.test",new Responder(onResult,onFault),"h..roading");
/////////////////////////////
function onResult(re:Object)
{
 trace(re);
}
function onFault(re:Object)
{
 trace(re);
 for(var i in re)
 trace(i+"=>"+re[i]);
}
//----------------------------------------------------------------------------------------------


php代码:
 1  // -----------------------------------------------------------------------------------------------
 2  <? php
 3 
 4  class  SavePic
 5  {
 6 
 7    function  Tuya()
 8   {
 9     $this -> methodTable  =   array (
10      " save "   =>   array (
11       " access "   =>   " remote "
12     ) ,
13      " test "   =>   array (
14       " access "   =>   " remote "
15     )
16    );
17   }
18    function  test( $str )
19   {
20     return   $str ;
21 
22 
23   }
24 
25 
26    function  save( $data )
27   {
28     $name   =   time () . ' .jpg ' // png
29   
30     $im   =   fopen ( $name , ' a ' );
31 
32     fwrite ( $im , $data );
33   
34     fclose ( $im );
35 
36     return   $name ;
37   }
38  }
39  ?>
40 
41 



你可能感兴趣的:( 使用amfphp1.9beta+flash9(as3)+corelib保存图片)