Flex实现的上传摄像头拍照并将UI保存为图片(flex使用方法)真没想到

随心笔谈11个月前发布 admin
84 0

xmlns:s=”library://ns.adobe.com/flex/spark”

xmlns:mx=”library://ns.adobe.com/flex/mx” minWidth=”955″ minHeight=”600″ creationComplete=”application1_creationCompleteHandler(event)”>

import mx.controls.Alert;

import mx.core.UIComponent;

import mx.events.FlexEvent;

import mx.graphics.codec.JPEGEncoder;

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

import mx.utils.UIDUtil;

protected function application1_creationCompleteHandler(event:FlexEvent):void

{

initCamera(videoDis);

}

//初始化Camera控件,并添加在VideoDisplay

public function initCamera(videoDis:UIComponent):void

{

var myCamera:Camera=Camera.getCamera();//获取客户端摄像头

myCamera.setMode(500,500,30);

var myVideo:Video=new Video(500,500);

myVideo.attachCamera(myCamera);//获取摄像头的视频流

videoDis.addChild(myVideo);

}

//将可视的UIComponent组件转换为图片

public function UItoBitmap(source:UIComponent,target:UIComponent):void

{

var width :int=source.width;

var height :int=source.height;

var bitmapData:BitmapData=new BitmapData(width,height);

bitmapData.draw(source,new Matrix());

var bitmap:Bitmap=new Bitmap(bitmapData);

var uic:UIComponent=new UIComponent();

uic.addChild(bitmap);

target.addChild(uic);

}

//将可视的UIComponent组件保存为本地图片

public function UISaveAsImg(imgID:UIComponent):void

{

var width :int=imgID.width;

var height :int=imgID.height;

var bitmapData:BitmapData=new BitmapData(width,height);

bitmapData.draw(imgID);

var byteArr:ByteArray=bitmapData.getPixels(new Rectangle(0,0,width,height));

var byteArr123:ByteArray=new JPEGEncoder().encodeByteArray(byteArr,width,height);

var fileRefer:FileReference=new FileReference();

fileRefer.save(byteArr123,UIDUtil.createUID()+”.png”);

fileRefer.addEventListener(Event.COMPLETE,function completeHandler():void{

Alert.show(“保存本地成功”);

});

}

//照片上传到服务器

protected function upLoadImg(imgID:UIComponent):void

{

var width :int=imgID.width;

var height :int=imgID.height;

var bitmapData:BitmapData=new BitmapData(width,height);

bitmapData.draw(imgID);

var byteArr:ByteArray=bitmapData.getPixels(new Rectangle(0,0,width,height));

var byteArr123:ByteArray=new JPEGEncoder().encodeByteArray(byteArr,width,height);

webService.UploadFile(byteArr123,”123.png”);

}

protected function webService_faultHandler(event:FaultEvent):void

{

Alert.show(event.fault.toString());

}

protected function webService_successHandler(event:ResultEvent):void

{

Alert.show(event.result.toString());

}

]]>

© 版权声明

相关文章