flash as3向php发送二进制数据,通过php保存成图片。

AS端:

 package
{
import com.JPEGEncoder.JPGEncoder;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.utils.ByteArray; /**
* ...
* @author Frost.Yen
*/
public class FlashSend extends Sprite
{
private var ldr:Loader = new Loader ;
private var bmp:Bitmap;
private var scale:Number = 1;//对象缩放比例
public function FlashSend()
{
ldr.load(new URLRequest("11.jpg"));
//图片地址;
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE,onImageLoaded);
} private function onImageLoaded(e:Event):void
{
bmp = e.target.content as Bitmap;
/** 对象的缩放和visible不影响二进制数据的发送和图片的生成,但是如果对象存在遮罩和注册点不在左上角的情况会对图片的生成有影响**/
//bmp.scaleX = bmp.scaleY = scale;
//bmp.visible = false;
addChild(bmp); sendToPHP(creatBitmapData(bmp,bmp.width * scale,bmp.height * scale));
}
//向php发送数据;
}; private function creatBitmapData(obj:DisplayObject,_width:Number,_height:Number):BitmapData
{
var bitmapdata:BitmapData = new BitmapData(_width,_height,false,0xffffff);
bitmapdata.draw(obj);
return bitmapdata;
}
private function sendToPHP(bitmapdata:BitmapData):void
{ var jpgEncoder:JPGEncoder = new JPGEncoder(80);
var jpgStream:ByteArray = jpgEncoder.encode(bitmapdata);
var jpgURLRequest:URLRequest = new URLRequest("http://localhost:8181/FlashSendToPHPToSaveJPG/toSaveJPG.php");//php地址
jpgURLRequest.data = jpgStream;
jpgURLRequest.method = URLRequestMethod.POST;
jpgURLRequest.contentType = "application/octet-stream";
var jpg_loader:URLLoader = new URLLoader ;
jpg_loader.dataFormat = URLLoaderDataFormat.BINARY;
jpg_loader.load(jpgURLRequest);
} } }

php端:

 <?php
//$filename = $_GET[jpgname].".jpg";//要生成的图片名字 可在as代码里面的php地址后面加上?jpgname=image即可
$filename="image.jpg";//要生成的图片名字
$xmlstr = $GLOBALS[HTTP_RAW_POST_DATA];
echo $xmlstr;
if(empty($xmlstr)) $xmlstr = file_get_contents('php://input');
$jpg = $xmlstr;//得到post过来的二进制原始数据
$file = fopen($filename,"w");//打开文件准备写入
fwrite($file,$jpg);//写入
fclose($file);//关闭
?>

在此提供两个下载JPGEncoder.as和BitString.as类的地址:

http://download.csdn.net/source/3205224

http://code.google.com/p/as3corelib/ 使用其中的:com.adobe.images.JPEGEncoder

[ActionScript 3.0] AS利用ByteArray向PHP发送二进制数据生成图片的更多相关文章

  1. [ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据

    主类 HTTPSendPHP.as package { import com.JPEGEncoder.JPGEncoder; import com.fylib.httpRequest.HttpRequ ...

  2. [ActionScript 3.0] AS3 深入理解Flash的安全沙箱Security Domains

    简介 如果你还没有与复杂的的安全域(security domain)和应用程序域(application domain)问题打过交道,那么你真是个幸运的家伙.当你在加载外部内容(然后他们开始播放)的时 ...

  3. ActionScript 3.0 API 中的 Video 类

    注:这个类在Flash流媒体开发中使用的很频繁,在此记录一下它的使用方法. 包 flash.media 类 public class Video 继承 Video  DisplayObject  Ev ...

  4. [ActionScript 3.0] as3处理xml的功能和遍历节点

    as3比as2处理xml的功能增强了N倍,获取或遍历节点非常之方便,类似于json对像的处理方式. XML 的一个强大功能是它能够通过文本字符的线性字符串提供复杂的嵌套数据.将数据加载到 XML 对象 ...

  5. [ActionScript 3.0] 正则表达式

    正则表达式: 正则表达式最早是由数学家Stephen Kleene在对自然语言的递增研究成果的基础上,于1956提出来的.具有完整语法的正则表达式,主要使用在字符串的格式的匹配方面上,后来也逐渐应用到 ...

  6. ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

    近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助. 目录 ActionScript 3.0简介 Hello ...

  7. [ActionScript 3.0] AS3.0 简单封装Socket的通信

    Socket服务器 package com.controls.socket { import com.models.events.AppEvent; import com.models.events. ...

  8. ActionScript 3.0 for the Lunder Algorithm

    package com.feiruo.Calendar.LunderCalendar { /* *@ClassName: package:com.feiruo.Calendar.LunderCalen ...

  9. [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调

    本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...

随机推荐

  1. Reducing File Size

    [Reducing File Size] 1.Unity strips out unused assets. The amount of assets in your project folder d ...

  2. lnline Hook初试

    简单解释下hook: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的.当消息到达后,在目标窗口处理 ...

  3. 148. Sort List (List)

    Sort a linked list in O(n log n) time using constant space complexity. 法I:快排.快排的难点在于切分序列.从头扫描,碰到> ...

  4. 17-list,字典使用练习

    randint(a,b)包括 [a,b]中随机, 包含a,b range(n)= 0,1,2,3....n-1 chr() 数字转字符: chr(65) 得到 :A ord()字符转数字:  ord( ...

  5. Halcon中一些突然想不起来但确实有用的算子

    1.Develop dev_display  在现有图形窗口中显示图像目标. dev_set_color   设置一个或更多输出颜色,通常用于设置region或者xld的颜色. dev_set_dra ...

  6. Java 8特性

    1. Java8的新特性 1.1. Lambda表达式和函数式接口 最简单的Lambda表达式可以用逗号分隔的参数列表.->符号和功能语句块来表示.示例如下: Arrays.asList( &q ...

  7. Metadata Service 最高频的应用 - 每天5分钟玩转 OpenStack(164)

    实现 instance 定制化,cloud-init(或 cloudbase-init)只是故事的一半,metadata service 则是故事的的另一半.两者的分工是:metadata servi ...

  8. select下拉列表

    1.写 <!DOCTYPE html> <html> <head> <title></title> <script language= ...

  9. NHibernate获取实体配置信息(表名,列名等等)

    // 注意这里有个&符号,并不是写错了,而是约定 就是这样写的ctx.GetObject("&SessionFactory") 这是官网地址http://nhfor ...

  10. dapper利用DynamicParameters构建动态参数查询

    public static int GetTotalLogin(string username,DateTime start, DateTime end) { using (var _connecti ...