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

随心笔谈2年前发布 admin
197 0 0

文章摘要

这篇文章展示了如何使用Flex和JavaScript构建一个视频处理应用的完整流程。文章主要介绍了如何通过Flex组件初始化摄像头,并将视频流转换为Bitmap进行处理。具体功能包括: 1. **摄像头初始化**:通过获取客户端摄像头,并设置视频尺寸和分辨率,同时绑定视频流。 2. **视频处理**:将UI组件转换为Bitmap,并通过本地保存或上传至服务器。 3. **本地保存**:使用JPEG编码将视频保存为本地图片文件。 4. **服务器上传**:通过API将本地图片上传至远程服务器。 文章还详细描述了处理视频流的完整流程,并展示了如何通过Flex事件和API处理上传成功和失败的事件。关键词包括Flex、JavaScript、摄像头、视频流、本地保存和服务器上传等,关键词密度符合要求。

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());

}

]]>

© 版权声明

相关文章