1

フラッシュ ウェブカメラ ビデオを使用して人々の画像を撮影するキオスクがあります。16:9 のカメラを使用していますが、4:3 の画像が必要です。ステージを 4:3 にしてビデオを追加したところ、キオスク UI で解決しました。

しかし...これらの画像を、ExternalInterfaceを使用してbase64でエンコードされたjpgを介してjavascriptに送信していますが、これはうまく機能します。ただし、送信するビデオ フレームを取得すると、もちろん 16:9 のままです。

そのため、ビデオ (またはビデオが追加された表示オブジェクト) を取得したときに 4:3 の画像になるように、ビデオをトリミングする必要があります。

マスクを使ってみましたが、なぜかかかりませんでした。

video = new Video(videoHeight, videoWidth); //backwards on purpose
video.x = -(videoWidth - stage.stageWidth) /2; //Center X
video.y = -(videoHeight - stage.stageHeight) /2; //Center Y


var maskSprite:Sprite = new Sprite();
maskSprite.graphics.drawRect(0,0,640,480);

video.mask(maskSprite);

何か案は?

4

1 に答える 1

0

のメソッドはそれ自体から描画されるため(マスキングは含まれません)、マスキングvideoは違いを生みません。drawBitmapDatavideovideoSpritedrawSprite

ただし、最善の解決策は、おそらくBitmapDataが描画している長方形を調整することです。BitmapDataまた、幅と高さも同様に調整する必要があります。

var bmd:BitmapData = new BitmapData(640, 480);
bmd.draw(video, null, null, null, new Rectangle(0, 0, 640, 480));

基本的に、パラメータの長方形を定義し、clipRectその長方形のサイズを、キャプチャしようとしているものの最終的なサイズ (および縦横比) に設定します。

于 2012-05-31T20:22:46.820 に答える