裁剪Flash网络摄像头图像

时间:2012-05-31 18:20:17

标签: flash webcam

我有一个使用flash网络摄像头拍摄人物图像的信息亭。我们使用的是16:9相机,但我们需要的图像是4:3。所以我刚刚创建了舞台4:3并将视频添加到了它,并在Kiosk 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);

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

屏蔽video不会产生任何影响,因为draw的{​​{1}}方法来自BitmapData本身(不包括屏蔽)如果你把video和掩码进入另一个video并在Sprite上使用draw,然后掩码就可以了。

然而,最好的解决方案可能是调整Sprite绘制的矩形。您也可能还想调整BitmapData的宽度和高度:

BitmapData

基本上,您要为var bmd:BitmapData = new BitmapData(640, 480); bmd.draw(video, null, null, null, new Rectangle(0, 0, 640, 480)); 参数定义一个矩形,并将该矩形的大小设置为您尝试捕获的最终大小(和宽高比)。