[ActionScript 3.0] AS利用ByteArray向PHP发送二进制数据生成图片
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发送二进制数据生成图片的更多相关文章
- [ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据
主类 HTTPSendPHP.as package { import com.JPEGEncoder.JPGEncoder; import com.fylib.httpRequest.HttpRequ ...
- [ActionScript 3.0] AS3 深入理解Flash的安全沙箱Security Domains
简介 如果你还没有与复杂的的安全域(security domain)和应用程序域(application domain)问题打过交道,那么你真是个幸运的家伙.当你在加载外部内容(然后他们开始播放)的时 ...
- ActionScript 3.0 API 中的 Video 类
注:这个类在Flash流媒体开发中使用的很频繁,在此记录一下它的使用方法. 包 flash.media 类 public class Video 继承 Video DisplayObject Ev ...
- [ActionScript 3.0] as3处理xml的功能和遍历节点
as3比as2处理xml的功能增强了N倍,获取或遍历节点非常之方便,类似于json对像的处理方式. XML 的一个强大功能是它能够通过文本字符的线性字符串提供复杂的嵌套数据.将数据加载到 XML 对象 ...
- [ActionScript 3.0] 正则表达式
正则表达式: 正则表达式最早是由数学家Stephen Kleene在对自然语言的递增研究成果的基础上,于1956提出来的.具有完整语法的正则表达式,主要使用在字符串的格式的匹配方面上,后来也逐渐应用到 ...
- ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助. 目录 ActionScript 3.0简介 Hello ...
- [ActionScript 3.0] AS3.0 简单封装Socket的通信
Socket服务器 package com.controls.socket { import com.models.events.AppEvent; import com.models.events. ...
- ActionScript 3.0 for the Lunder Algorithm
package com.feiruo.Calendar.LunderCalendar { /* *@ClassName: package:com.feiruo.Calendar.LunderCalen ...
- [转]ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
本文转自:http://www.cnblogs.com/artwl/p/3396330.html 近期项目中可能要用到Flash存取数据,并与JS互调,所以就看了一下ActionScript 3.0, ...
随机推荐
- Slim安装以及使用【转】
最近在用backbone.js 做东西,因为牵扯到REST services 所以需要后台支持,此处选择了php.Slim 是php的一个框架. 貌似国内文章对此的介绍比较少,在安装Slim的过程中出 ...
- TCP端口状态说明ESTABLISHED、TIME_WAIT、 CLOSE_WAIT
一. 首先说下tcp端口的几种状态: 1.LISTENING状态 FTP服务启动后首先处于侦听(LISTENING)状态. 2.ESTABLISHED状态 ESTABLISHED的意思是建立连接.表示 ...
- ”$-”与shell默认选项
一.前言 之所以整理这篇博客,主要是写Linux环境设置文件 的时候,在查看/etc/profile时看到这么一段代码: for i in /etc/profile.d/*.sh ; do if [ ...
- android应用:TVlauncher源码分析之Androidmanifest.json
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...
- [C++] inline function
trap #define GET3(N) N*N*N GET3(1+2) : 1+2*1+2*1+2 = 7
- [C++] Pen questions & linux cmd
1.宏替换,完全展开替换,注意带来副作用 #include <stdio.h>#define 打印语句 printf(“hello”); Void main(void) { If (1) ...
- dedecms开启报错调试
位置:/include/common.inc.php //error_reporting(E_ALL); error_reporting(E_ALL || ~E_NOTICE); 替换成 error_ ...
- 修复jqgrid setgridparam postdata 的多次查询条件累加
//根据elements查询出的参数个数的不同,而传递不同个数的查询参数 start var elements = node.attributes.text.split(","); ...
- Spring Boot☞ 使用velocity渲染web视图
效果图: 代码 <!DOCTYPE html><html><head lang="en"> <meta charset="UTF ...
- 常用工具类——StringUtils
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...