8.11.读取和保持用户的网络摄像头图像

8.11.1. 问题
我需要从用户的网络摄像机读取一个图像并保存图像在服务器上
8.11.2. 解决办法
创建一个Camera 对象,并将它附加到一个Video 对象。然后创建一个按钮,从视频对象读取位图并使用服务器端脚本保存位图数据。
8.11.3. 讨论
网络摄像机捕获一个图像,从Video 对象创建一个位图显示摄像机的图像。Flash Player 不提供任何从网路摄像机访问数据流的方法, 所以,你需要在你能使用它之前渲染这些数据为位图。

图像作为BitmapData 对象捕获以后,您可以通过把数据传送到一个JPEGEncoder 类的实例来转换图像成为JPEG 图像数据。接下来,添加数据到URLRequest 对象,并使用navigateToURL 方法传送,保存JPEG 图像到数据库。例子:
+展开
-XML
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400"
height="500creationComplete="setUpCam()">

<mx:Script>
<![CDATA[
import flash.net.navigateToURL;
import flash.net.sendToURL;
import mx.graphics.codec.JPEGEncoder;
private var cam:Camera;
private function setUpCam():void {
cam = flash.media.Camera.getCamera("2");
vid.attachCamera(cam);
}
private function saveImage():void {
var bitmapData:BitmapData = new BitmapData(vid.width,
vid.height);
bitmapData.draw(vid);
var encode:JPEGEncoder = new JPEGEncoder(100);
var ba:ByteArray = encode.encode(bitmapData);
var urlRequest:URLRequest =
new URLRequest("/jpg_reader.php");
urlRequest.method = "POST";
var urlVars:URLVariables = new URLVariables();
urlVars.pic = ba;
urlRequest.data = urlVars;
flash.net.navigateToURL(urlRequest, "_blank");
}

]]>
</mx:Script>
<mx:VideoDisplay id="vidwidth="360height="320"/>
<mx:Button label="Take Picture Nowclick="saveImage()"/>
</mx:Canvas>

加支付宝好友偷能量挖...


评论(0)网络
阅读(122)喜欢(0)flash/flex/fcs/AIR