2012-04-27 8 views
0

ウェブカメラから画像を取得するのに、次のコードを使用しています。私が直面している問題は、「ビットマップ」をmcVideoに合わせる必要があることです。ビットマップがmcVideoよりも大きいので、mcVideo.addChild(ビットマップ)だけではできません。プレビューの目的でビットマップをmcVideoに収めるにはどうすればよいですか?AS3ムービークリップに合わせてビットマップオブジェクトのサイズを変更します。

ありがとうございます!

var bandwidth:int = 0; 
var quality:int = 100; 

var cam:Camera; 
var video:Video; 
var captureVideo:Video; 
var bitmapData:BitmapData; 
var bitmap:Bitmap;  

public function Main() { 

    mcCapture.addEventListener(MouseEvent.CLICK, mcCapture_Click); 

    cam = Camera.getCamera(); 
    cam.setQuality(bandwidth, quality); 
    cam.setMode(640,480,30,false); 

    // The display object: 
    video = new Video(); 
    video.attachCamera(cam); 
    video.width = mcVideo.width; 
    video.height = mcVideo.height; 

    mcVideo.addChild(video); 

    // Bitmap to capture full 640x480 
    bitmapData = new BitmapData(cam.width, cam.height); 
    bitmap = new Bitmap(bitmapData); 
    bitmap.width = cam.width; 
    bitmap.height = cam.height; 

    trace("Set bitmap width: " + bitmap.width + " Height: " + bitmap.height); 

} 

public function mcCapture_Click(e:Event):void { 

    bitmapData.draw(video); 


      // Code to display preview 

    trace("done"); 

} 
+0

mcVideoはどこに作成されていますか? – Neil

+0

ステージ上のムービークリップとしてフラッシュに作成されます。 – Jacob

答えて

0

あなたはaddChild()を使用し、画面に収まるようにビットマップを拡大するために、約0.5または0.2へのMCのscaleXscaleYプロパティを設定することができます。

またはカスタム関数を使用して、ビットマップの一部だけを切り抜いて切り抜くことができます。

var g:Graphics = MC.graphics; 
g.beginBitmapFill(...) 
g.drawRect(...) 
g.endFill() 
関連する問題