5D艺术网首页
商城
|
资讯
|
作品
|
博客
|
教程
|
论坛
登录
注册
加为好友
发短消息
来自:bj
性别:先生
最后登录:2018-10-12
http://yitu.5d.cn/
首页
|
新闻
|
话题
|
博客
|
相册
|
艺术作品
|
社交关系
|
留言板
|
社交圈
2007/04/28 | as3+cf实现BitmapData图片数据保存
类别(flash As)
|
评论
(2)
|
阅读(804)
|
发表于 21:24
作者:www.klstudio.com | 来源:www.klstudio.com | 浏览次数:103 | 2007-3-16 13:38:43
as3+cf实现BitmapData图片数据保存
测试代码需要用下面的类
<html>
<listing>
1.PNGEncoder类,这个类你可以到labs.adobe.com上面找,另外可以在这里下载;
www.klstudio.com/download/PNGEncoder.as
2. Base64类,这个上篇已经提供了!
www.klstudio.com/post/110.html
3. RemotingService类!
package com.klstudio.remoting{
import flash.net.NetConnection;
import flash.net.ObjectEncoding;
public class RemotingService extends NetConnection{
function RemotingService(url:String,amf:uint=ObjectEncoding.AMF0){
this.objectEncoding = amf;
this.connect(url);
}
}
}
Coldfusion服务端test.cfc文件内容
<cfcomponent>
<cffunction name="saveImage" access="remote" returntype="string">
<cfargument name="fileName" type="string" required="yes">
<cfargument name="fileData" type="string" required="yes">
<cfobject name="stream" action="create" type="java" class="java.io.FileOutputStream">
<cfset stream.init(expandPath(arguments.fileName))>
<cfset stream.write(ToBinary(arguments.fileData))>
<cfset stream.close()>
<cfreturn arguments.fileName>
</cffunction>
</cfcomponent>
测试代码
package{
import flash.display.*;
import flash.net.*;
import flash.utils.ByteArray;
import com.adobe.images.PNGEncoder;
import com.klstudio.util.*;
import com.klstudio.remoting.*;
public class Test extends Sprite {
public function Test() {
this.drawFace();
}
private function drawFace():void{
//这个就是一个flash显示元素;
var face:Face = new Face();
face.x = 0;
face.y = 0;
face.name = "face";
this.addChild(face);
var bmd:BitmapData = new BitmapData(face.width, face.height, true, 0);
bmd.draw(face);
var bytes:ByteArray = PNGEncoder.encode(bmd);
var remote:RemotingService = new RemotingService("http://localhost:8500/flashservices/gateway");
//如果服务端支持AMF3的话,就不用转换成Base64字符编码了,可以直接传ByteArray数据,但我用的cf只支持AMF0所以只好Base64编码化,但这个方法同进还可以通过页面提交方式提供数据出去!
remote.call("test.saveImage",new Responder(onResult, onFault),"test.png",Base64.encode(bytes,true));
}
private function onResult(result:Object):void {
trace("result:"+result);
}
private function onFault(fault:Object):void{
trace("fault:"+fault.details);
}
}
}
</listing>
</html>
0
评论
Comments
日志分类
首页
[193]
flash As
[107]
有的没的
[59]
数码照片
[4]
自由世界
[19]
blender
[4]