URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
2008-11-21 11:19
441 查看
package project.test {
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.utils.ByteArray;
import fl.controls.Button;
import com.klstudio.images.JPGEncoder;
public class Test12 extends Sprite{
private var _base:Shape;
private var _rnd_button:Button;
private var _submit_button:Button;
private static const UPLOAD_PAGE:String="http://localhost:8080/upload.jsp";
public function Test12(){
_base = new Shape();
_base.x = _base.y = 5;
addChild(_base);
drawLine();
_rnd_button = new Button();
_rnd_button.label = "随机画图";
_rnd_button.setSize(90,22);
_rnd_button.move(5,205);
_rnd_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_rnd_button);
_submit_button = new Button();
_submit_button.label = "保存图片";
_submit_button.setSize(90,22);
_submit_button.move(105,205);
_submit_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_submit_button);
}
public function drawRndRect():void{
_base.graphics.beginFill(getRndColor());
var gWidth:uint = getRndInt();
var gHeight:uint = getRndInt();
var gX:uint = getRndInt(5,180-gWidth+5);
var gY:uint = getRndInt(5,180-gHeight+5);
_base.graphics.drawRect(gX,gY,gWidth,gHeight);
}
public function getRndInt(min:uint=10,max:uint=180):uint{
return uint(Math.random()*(max-min))+min;
}
public function getRndColor():uint{
var r:uint = getRndInt(10,220);
var g:uint = getRndInt(10,220);
var b:uint = getRndInt(10,220);
var c:uint = (r << 16) + (g << 8) + b;
return c;
}
public function drawLine():void{
_base.graphics.beginFill(0x666666);
_base.graphics.drawRect(0,0,190,190);
_base.graphics.beginFill(0xFFFFFF);
_base.graphics.drawRect(1,1,188,188);
_base.graphics.endFill();
}
public function getBitmapData():BitmapData{
var bmd:BitmapData = new BitmapData(_base.width,_base.height);
bmd.draw(_base);
return bmd;
}
public function submit():void{
_rnd_button.enabled = false;
_submit_button.enabled = false;
var encoder:JPGEncoder = new JPGEncoder(80);
var bytes:ByteArray = encoder.encode(getBitmapData());
var request:URLRequest = new URLRequest(UPLOAD_PAGE);
//data值就为图片编码数据ByteArray;
request.data = bytes;
request.method = URLRequestMethod.POST;
//这个是关键,内容类型必须是下面文件流形式;
request.contentType = "application/octet-stream";
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
loader.load(request);
}
private function completeHandler(event:Event):void{
trace("图片上传成功");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function errorHandler(event:IOErrorEvent):void{
trace("图片上传失败");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function clickHandler(event:MouseEvent):void{
switch(event.target){
case _rnd_button:
_base.graphics.clear();
drawLine();
drawRndRect();
drawRndRect();
drawRndRect();
drawRndRect();
break;
case _submit_button:
submit();
break;
}
}
}
}
package project.test {
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.utils.ByteArray;
import fl.controls.Button;
import com.klstudio.images.JPGEncoder;
public class Test12 extends Sprite{
private var _base:Shape;
private var _rnd_button:Button;
private var _submit_button:Button;
private static const UPLOAD_PAGE:String="http://localhost:8080/upload.jsp";
public function Test12(){
_base = new Shape();
_base.x = _base.y = 5;
addChild(_base);
drawLine();
_rnd_button = new Button();
_rnd_button.label = "随机画图";
_rnd_button.setSize(90,22);
_rnd_button.move(5,205);
_rnd_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_rnd_button);
_submit_button = new Button();
_submit_button.label = "保存图片";
_submit_button.setSize(90,22);
_submit_button.move(105,205);
_submit_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_submit_button);
}
public function drawRndRect():void{
_base.graphics.beginFill(getRndColor());
var gWidth:uint = getRndInt();
var gHeight:uint = getRndInt();
var gX:uint = getRndInt(5,180-gWidth+5);
var gY:uint = getRndInt(5,180-gHeight+5);
_base.graphics.drawRect(gX,gY,gWidth,gHeight);
}
public function getRndInt(min:uint=10,max:uint=180):uint{
return uint(Math.random()*(max-min))+min;
}
public function getRndColor():uint{
var r:uint = getRndInt(10,220);
var g:uint = getRndInt(10,220);
var b:uint = getRndInt(10,220);
var c:uint = (r << 16) + (g << 8) + b;
return c;
}
public function drawLine():void{
_base.graphics.beginFill(0x666666);
_base.graphics.drawRect(0,0,190,190);
_base.graphics.beginFill(0xFFFFFF);
_base.graphics.drawRect(1,1,188,188);
_base.graphics.endFill();
}
public function getBitmapData():BitmapData{
var bmd:BitmapData = new BitmapData(_base.width,_base.height);
bmd.draw(_base);
return bmd;
}
public function submit():void{
_rnd_button.enabled = false;
_submit_button.enabled = false;
var encoder:JPGEncoder = new JPGEncoder(80);
var bytes:ByteArray = encoder.encode(getBitmapData());
var request:URLRequest = new URLRequest(UPLOAD_PAGE);
//data值就为图片编码数据ByteArray;
request.data = bytes;
request.method = URLRequestMethod.POST;
//这个是关键,内容类型必须是下面文件流形式;
request.contentType = "application/octet-stream";
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
loader.load(request);
}
private function completeHandler(event:Event):void{
trace("图片上传成功");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function errorHandler(event:IOErrorEvent):void{
trace("图片上传失败");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function clickHandler(event:MouseEvent):void{
switch(event.target){
case _rnd_button:
_base.graphics.clear();
drawLine();
drawRndRect();
drawRndRect();
drawRndRect();
drawRndRect();
break;
case _submit_button:
submit();
break;
}
}
}
}
<%@ page contentType="text/html; charset=utf-8" language="java"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%
int v;
String filePath = request.getRealPath(System.currentTimeMillis()+".jpg");
BufferedInputStream inputStream = new BufferedInputStream(request.getInputStream());
FileOutputStream outputStream = new FileOutputStream(new File(filePath));
byte [] bytes = new byte[1024];
while((v=inputStream.read(bytes))>0){
outputStream.write(bytes,0,v);
}
outputStream.close();
inputStream.close();
%>
222222
package project.test {
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.utils.ByteArray;
import fl.controls.Button;
import com.klstudio.images.JPGEncoder;
public class Test12 extends Sprite{
private var _base:Shape;
private var _rnd_button:Button;
private var _submit_button:Button;
private static const UPLOAD_PAGE:String="http://localhost:8080/upload.jsp";
public function Test12(){
_base = new Shape();
_base.x = _base.y = 5;
addChild(_base);
drawLine();
_rnd_button = new Button();
_rnd_button.label = "随机画图";
_rnd_button.setSize(90,22);
_rnd_button.move(5,205);
_rnd_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_rnd_button);
_submit_button = new Button();
_submit_button.label = "保存图片";
_submit_button.setSize(90,22);
_submit_button.move(105,205);
_submit_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_submit_button);
}
public function drawRndRect():void{
_base.graphics.beginFill(getRndColor());
var gWidth:uint = getRndInt();
var gHeight:uint = getRndInt();
var gX:uint = getRndInt(5,180-gWidth+5);
var gY:uint = getRndInt(5,180-gHeight+5);
_base.graphics.drawRect(gX,gY,gWidth,gHeight);
}
public function getRndInt(min:uint=10,max:uint=180):uint{
return uint(Math.random()*(max-min))+min;
}
public function getRndColor():uint{
var r:uint = getRndInt(10,220);
var g:uint = getRndInt(10,220);
var b:uint = getRndInt(10,220);
var c:uint = (r << 16) + (g << 8) + b;
return c;
}
public function drawLine():void{
_base.graphics.beginFill(0x666666);
_base.graphics.drawRect(0,0,190,190);
_base.graphics.beginFill(0xFFFFFF);
_base.graphics.drawRect(1,1,188,188);
_base.graphics.endFill();
}
public function getBitmapData():BitmapData{
var bmd:BitmapData = new BitmapData(_base.width,_base.height);
bmd.draw(_base);
return bmd;
}
public function submit():void{
_rnd_button.enabled = false;
_submit_button.enabled = false;
var encoder:JPGEncoder = new JPGEncoder(80);
var bytes:ByteArray = encoder.encode(getBitmapData());
var request:URLRequest = new URLRequest(UPLOAD_PAGE);
//data值就为图片编码数据ByteArray;
request.data = bytes;
request.method = URLRequestMethod.POST;
//这个是关键,内容类型必须是下面文件流形式;
request.contentType = "application/octet-stream";
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
loader.load(request);
}
private function completeHandler(event:Event):void{
trace("图片上传成功");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function errorHandler(event:IOErrorEvent):void{
trace("图片上传失败");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function clickHandler(event:MouseEvent):void{
switch(event.target){
case _rnd_button:
_base.graphics.clear();
drawLine();
drawRndRect();
drawRndRect();
drawRndRect();
drawRndRect();
break;
case _submit_button:
submit();
break;
}
}
}
}
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.utils.ByteArray;
import fl.controls.Button;
import com.klstudio.images.JPGEncoder;
public class Test12 extends Sprite{
private var _base:Shape;
private var _rnd_button:Button;
private var _submit_button:Button;
private static const UPLOAD_PAGE:String="http://localhost:8080/upload.jsp";
public function Test12(){
_base = new Shape();
_base.x = _base.y = 5;
addChild(_base);
drawLine();
_rnd_button = new Button();
_rnd_button.label = "随机画图";
_rnd_button.setSize(90,22);
_rnd_button.move(5,205);
_rnd_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_rnd_button);
_submit_button = new Button();
_submit_button.label = "保存图片";
_submit_button.setSize(90,22);
_submit_button.move(105,205);
_submit_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_submit_button);
}
public function drawRndRect():void{
_base.graphics.beginFill(getRndColor());
var gWidth:uint = getRndInt();
var gHeight:uint = getRndInt();
var gX:uint = getRndInt(5,180-gWidth+5);
var gY:uint = getRndInt(5,180-gHeight+5);
_base.graphics.drawRect(gX,gY,gWidth,gHeight);
}
public function getRndInt(min:uint=10,max:uint=180):uint{
return uint(Math.random()*(max-min))+min;
}
public function getRndColor():uint{
var r:uint = getRndInt(10,220);
var g:uint = getRndInt(10,220);
var b:uint = getRndInt(10,220);
var c:uint = (r << 16) + (g << 8) + b;
return c;
}
public function drawLine():void{
_base.graphics.beginFill(0x666666);
_base.graphics.drawRect(0,0,190,190);
_base.graphics.beginFill(0xFFFFFF);
_base.graphics.drawRect(1,1,188,188);
_base.graphics.endFill();
}
public function getBitmapData():BitmapData{
var bmd:BitmapData = new BitmapData(_base.width,_base.height);
bmd.draw(_base);
return bmd;
}
public function submit():void{
_rnd_button.enabled = false;
_submit_button.enabled = false;
var encoder:JPGEncoder = new JPGEncoder(80);
var bytes:ByteArray = encoder.encode(getBitmapData());
var request:URLRequest = new URLRequest(UPLOAD_PAGE);
//data值就为图片编码数据ByteArray;
request.data = bytes;
request.method = URLRequestMethod.POST;
//这个是关键,内容类型必须是下面文件流形式;
request.contentType = "application/octet-stream";
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
loader.load(request);
}
private function completeHandler(event:Event):void{
trace("图片上传成功");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function errorHandler(event:IOErrorEvent):void{
trace("图片上传失败");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function clickHandler(event:MouseEvent):void{
switch(event.target){
case _rnd_button:
_base.graphics.clear();
drawLine();
drawRndRect();
drawRndRect();
drawRndRect();
drawRndRect();
break;
case _submit_button:
submit();
break;
}
}
}
}
package project.test {
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.utils.ByteArray;
import fl.controls.Button;
import com.klstudio.images.JPGEncoder;
public class Test12 extends Sprite{
private var _base:Shape;
private var _rnd_button:Button;
private var _submit_button:Button;
private static const UPLOAD_PAGE:String="http://localhost:8080/upload.jsp";
public function Test12(){
_base = new Shape();
_base.x = _base.y = 5;
addChild(_base);
drawLine();
_rnd_button = new Button();
_rnd_button.label = "随机画图";
_rnd_button.setSize(90,22);
_rnd_button.move(5,205);
_rnd_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_rnd_button);
_submit_button = new Button();
_submit_button.label = "保存图片";
_submit_button.setSize(90,22);
_submit_button.move(105,205);
_submit_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_submit_button);
}
public function drawRndRect():void{
_base.graphics.beginFill(getRndColor());
var gWidth:uint = getRndInt();
var gHeight:uint = getRndInt();
var gX:uint = getRndInt(5,180-gWidth+5);
var gY:uint = getRndInt(5,180-gHeight+5);
_base.graphics.drawRect(gX,gY,gWidth,gHeight);
}
public function getRndInt(min:uint=10,max:uint=180):uint{
return uint(Math.random()*(max-min))+min;
}
public function getRndColor():uint{
var r:uint = getRndInt(10,220);
var g:uint = getRndInt(10,220);
var b:uint = getRndInt(10,220);
var c:uint = (r << 16) + (g << 8) + b;
return c;
}
public function drawLine():void{
_base.graphics.beginFill(0x666666);
_base.graphics.drawRect(0,0,190,190);
_base.graphics.beginFill(0xFFFFFF);
_base.graphics.drawRect(1,1,188,188);
_base.graphics.endFill();
}
public function getBitmapData():BitmapData{
var bmd:BitmapData = new BitmapData(_base.width,_base.height);
bmd.draw(_base);
return bmd;
}
public function submit():void{
_rnd_button.enabled = false;
_submit_button.enabled = false;
var encoder:JPGEncoder = new JPGEncoder(80);
var bytes:ByteArray = encoder.encode(getBitmapData());
var request:URLRequest = new URLRequest(UPLOAD_PAGE);
//data值就为图片编码数据ByteArray;
request.data = bytes;
request.method = URLRequestMethod.POST;
//这个是关键,内容类型必须是下面文件流形式;
request.contentType = "application/octet-stream";
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
loader.load(request);
}
private function completeHandler(event:Event):void{
trace("图片上传成功");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function errorHandler(event:IOErrorEvent):void{
trace("图片上传失败");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function clickHandler(event:MouseEvent):void{
switch(event.target){
case _rnd_button:
_base.graphics.clear();
drawLine();
drawRndRect();
drawRndRect();
drawRndRect();
drawRndRect();
break;
case _submit_button:
submit();
break;
}
}
}
}
<%@ page contentType="text/html; charset=utf-8" language="java"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%
int v;
String filePath = request.getRealPath(System.currentTimeMillis()+".jpg");
BufferedInputStream inputStream = new BufferedInputStream(request.getInputStream());
FileOutputStream outputStream = new FileOutputStream(new File(filePath));
byte [] bytes = new byte[1024];
while((v=inputStream.read(bytes))>0){
outputStream.write(bytes,0,v);
}
outputStream.close();
inputStream.close();
%>
222222
package project.test {
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.utils.ByteArray;
import fl.controls.Button;
import com.klstudio.images.JPGEncoder;
public class Test12 extends Sprite{
private var _base:Shape;
private var _rnd_button:Button;
private var _submit_button:Button;
private static const UPLOAD_PAGE:String="http://localhost:8080/upload.jsp";
public function Test12(){
_base = new Shape();
_base.x = _base.y = 5;
addChild(_base);
drawLine();
_rnd_button = new Button();
_rnd_button.label = "随机画图";
_rnd_button.setSize(90,22);
_rnd_button.move(5,205);
_rnd_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_rnd_button);
_submit_button = new Button();
_submit_button.label = "保存图片";
_submit_button.setSize(90,22);
_submit_button.move(105,205);
_submit_button.addEventListener(MouseEvent.CLICK,clickHandler);
addChild(_submit_button);
}
public function drawRndRect():void{
_base.graphics.beginFill(getRndColor());
var gWidth:uint = getRndInt();
var gHeight:uint = getRndInt();
var gX:uint = getRndInt(5,180-gWidth+5);
var gY:uint = getRndInt(5,180-gHeight+5);
_base.graphics.drawRect(gX,gY,gWidth,gHeight);
}
public function getRndInt(min:uint=10,max:uint=180):uint{
return uint(Math.random()*(max-min))+min;
}
public function getRndColor():uint{
var r:uint = getRndInt(10,220);
var g:uint = getRndInt(10,220);
var b:uint = getRndInt(10,220);
var c:uint = (r << 16) + (g << 8) + b;
return c;
}
public function drawLine():void{
_base.graphics.beginFill(0x666666);
_base.graphics.drawRect(0,0,190,190);
_base.graphics.beginFill(0xFFFFFF);
_base.graphics.drawRect(1,1,188,188);
_base.graphics.endFill();
}
public function getBitmapData():BitmapData{
var bmd:BitmapData = new BitmapData(_base.width,_base.height);
bmd.draw(_base);
return bmd;
}
public function submit():void{
_rnd_button.enabled = false;
_submit_button.enabled = false;
var encoder:JPGEncoder = new JPGEncoder(80);
var bytes:ByteArray = encoder.encode(getBitmapData());
var request:URLRequest = new URLRequest(UPLOAD_PAGE);
//data值就为图片编码数据ByteArray;
request.data = bytes;
request.method = URLRequestMethod.POST;
//这个是关键,内容类型必须是下面文件流形式;
request.contentType = "application/octet-stream";
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR,errorHandler);
loader.load(request);
}
private function completeHandler(event:Event):void{
trace("图片上传成功");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function errorHandler(event:IOErrorEvent):void{
trace("图片上传失败");
_rnd_button.enabled = true;
_submit_button.enabled = true;
}
private function clickHandler(event:MouseEvent):void{
switch(event.target){
case _rnd_button:
_base.graphics.clear();
drawLine();
drawRndRect();
drawRndRect();
drawRndRect();
drawRndRect();
break;
case _submit_button:
submit();
break;
}
}
}
}
相关文章推荐
- [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
- [AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- 将HTML5 Canvas的内容保存为图片借助toDataURL实现
- 将HTML5 Canvas的内容保存为图片借助toDataURL实现
- 将HTML5 Canvas的内容保存为图片借助toDataURL实现
- Flex中ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- 将HTML5 Canvas的内容保存为图片借助toDataURL实现
- [ActionScript 3.0] 通过BitmapData将对象保存成jpg图片
- Flex中ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- Flex中ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原[转]
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- Flex中ByteArray与BitmapData互相转换实现图片的二进制保存与复原 .
- Flex中利用ByteArray与BitmapData互相转换实现图片的二进制保存与复原
- Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
- Java实现头像截取裁剪后图片保存,获取的是base64数据,怎么转换为图片并保存到数据库。
- HTML自定义按钮上传图片并实现预览(同时解决getAsDataURL()弃用问题)