最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flex實(shí)現(xiàn)的上傳攝像頭拍照并將UI保存為圖片

 更新時間:2014年05月02日 13:57:46   作者:  
這篇文章主要介紹了Flex如何實(shí)現(xiàn)上傳攝像頭拍照并將UI保存為圖片,需要的朋友可以參考下
flex客戶端代碼:
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="application1_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
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組件轉(zhuǎn)換為圖片
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("保存本地成功");
});
}


//照片上傳到服務(wù)器
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());
}

]]>
</fx:Script>
<fx:Declarations>
<!-- 將非可視元素(例如服務(wù)、值對象)放在此處 -->
<s:WebService id="webService" wsdl="http://10.19.1.48/upImg/Service1.asmx?WSDL" fault="webService_faultHandler(event)">
<s:operation name="UploadFile" result="webService_successHandler(event)"></s:operation>
</s:WebService>
</fx:Declarations>
<s:VideoDisplay id="videoDis" width="500" height="500" click="UItoBitmap(videoDis,t_img_Picture),UItoBitmap(videoDis,content)" toolTip="點(diǎn)擊拍照"></s:VideoDisplay>
<mx:DateChooser id="myDate" x="62" y="508" click="UItoBitmap(myDate,t_img_Picture),UItoBitmap(myDate,content)" toolTip="點(diǎn)擊拍照"/>

<mx:Image id="t_img_Picture" x="522" y="0" width="500" height="500" click="UISaveAsImg(t_img_Picture)" toolTip="點(diǎn)擊保存本地"/>
<mx:Canvas id="content" x="500" y="300" width="500" height="500" click="UISaveAsImg(content)" toolTip="點(diǎn)擊保存本地"></mx:Canvas>

<s:Button x="305" y="537" label="上傳" width="130" height="64" click="upLoadImg(t_img_Picture)"/>

</s:Application>

webservice代碼:
復(fù)制代碼 代碼如下:

/// <summary>
/// 上傳文件到遠(yuǎn)程服務(wù)器
/// </summary>
/// <param name="fileBytes">文件流</param>
/// <param name="fileName">文件名</param>
/// <returns>字符串</returns>
[WebMethod(Description = "上傳文件到遠(yuǎn)程服務(wù)器.")]
public string UploadFile(byte[] fileBytes, string fileName)
{
try
{
MemoryStream memoryStream = new MemoryStream(fileBytes); //1.定義并實(shí)例化一個內(nèi)存流,以存放提交上來的字節(jié)數(shù)組。
FileStream fileUpload = new FileStream(Server.MapPath(".") + "\\" + fileName, FileMode.Create); ///2.定義實(shí)際文件對象,保存上載的文件。
memoryStream.WriteTo(fileUpload); ///3.把內(nèi)存流里的數(shù)據(jù)寫入物理文件
memoryStream.Close();
fileUpload.Close();
fileUpload = null;
memoryStream = null;
return "文件已成功上傳至服務(wù)器";
}
catch (Exception ex)
{
return ex.Message;
}
}

相關(guān)文章

最新評論

松原市| 平乡县| 买车| 兴文县| 佳木斯市| 高阳县| 兴安县| 聂拉木县| 新郑市| 微山县| 陇川县| 河北区| 清徐县| 仙桃市| 无极县| 丰顺县| 额尔古纳市| 忻城县| 高阳县| 治多县| 浙江省| 萨迦县| 博客| 三都| 长阳| 商南县| 宁南县| 巴青县| 锦屏县| 郧西县| 韶山市| 石泉县| 沙洋县| 上杭县| 西城区| 新巴尔虎左旗| 安丘市| 山丹县| 永年县| 宣威市| 斗六市|