Action Script 3.0 でwebカメラを使いキャプチャを撮る

今回は,WEBカメラの画像をキャプチャするコードをのせていきたいと思います。

 

 

package {
import flash.display.*;
import flash.media.Camera;
import flash.media.Video;
import flash.events.*;

public class Main extends Sprite {

public function Main() {

// constructor code

// カメラを取得
var camera = Camera.getCamera();

// ビデオ配置:サイズ指定
var video:Video = new Video( 250 , 200 );

// カメラ設定
video.attachCamera( camera);

//ビデオを鏡面反射にする
video.x = 250;
video.scaleX *= -1;

// 表示
addChild( video );

//カメラの画質設定
camera.setMode(250,200,30);

//キャプチャイベント(ステージをクリックすると画像がステージ右に表示される)
stage.addEventListener ( MouseEvent.CLICK, onClick );
function onClick ( e:MouseEvent ):void{

//BitmapData作成
var bmd:BitmapData = new BitmapData(250,200);
bmd.draw(video);

//キャプチャを表示する
var bm:Bitmap = new Bitmap(bmd);
bm.x = 550;
bm.y = 0;
bm.scaleX *=-1;  //ビデオを鏡面反射にする
addChild( bm );

}
}
}
}

 

 

前半のコードは今までのWEBカメラを使用するコードと同じです。
videoのスケールXに-1をかけて,videoのXの位置を移動することで鏡面反射するようにしています。

後半のキャプチャイベントでBitmapDataを作成して表示しています。
あと,Bitmapに対してもスケールXに-1をかけています。