Flash 从网络摄像头捕获特定大小的图像

Flash 从网络摄像头捕获特定大小的图像,flash,webcam,video-capture,image-capture,Flash,Webcam,Video Capture,Image Capture,如何从网络摄像头中捕获图像,并使其具有特定的大小,而没有空白 我指定所需的大小: var屏幕截图:BitmapData=新的BitmapData(VD1.width,VD1.height,false) 那是400x300 然后我从视频元素中绘制位图 screenshot.draw(VD1) 我可以做Camera.getCamera.height和width并查看我的相机是352x264px 当我查看生成的图像时,我看到边缘周围都是空白(可以看出是灰色的),如下所示:![在此处输入图像描述][1]

如何从网络摄像头中捕获图像,并使其具有特定的大小,而没有空白

我指定所需的大小:

var屏幕截图:BitmapData=新的BitmapData(VD1.width,VD1.height,false)

那是400x300

然后我从视频元素中绘制位图
screenshot.draw(VD1)

我可以做
Camera.getCamera.height
width
并查看我的相机是352x264px

当我查看生成的图像时,我看到边缘周围都是空白(可以看出是灰色的),如下所示:![在此处输入图像描述][1]

如果您测量实际图像,您将看到它甚至不占用352x264像素。即使使用该度量,右边缘和下边缘仍存在空白

Camera.setMode
方法将捕获放大到400x300,但它看起来像是从它所连接的视频对象直接捕获(使用
VD1.attachCamera(myCam)
将VD1对象绘制到位图时输出不同的结果

我希望所有拍摄的图像大小相同,而不管相机分辨率如何。有什么方法可以做到这一点吗


以下是我拍摄图像的方式,仅供参考:

private function takeScreenShot():void{
    var screenshot:BitmapData = new BitmapData(VD1.width,VD1.height,false);
    screenshot.draw(VD1);
    var encoder:PNGEncoder = new PNGEncoder();
    var pngByteArray:ByteArray = encoder.encode(screenshot);

    var responder:Responder = new Responder(function(res:Object):void{
        trace("createThumbnail success");
    },
    function(res:Object):void{
        trace("createThumbnail call failed");
    });

    mync.call("saveThumbnail", responder,pngByteArray);

}
这是我如何设置我的相机

VD1 = new Video();
VD1.width = 400;
VD1.height = 300;

myMic = Microphone.getMicrophone();
myMic.rate = 22;
myMic.setSilenceLevel(0);
myMic.setUseEchoSuppression(true);
myMic.soundTransform = new SoundTransform(0,0);

myCam = Camera.getCamera();
trace(myCam.height+","+ myCam.width);
myCam.setMode(400,300,15);
myCam.setQuality(0,100);
myCam.setLoopback(true);

您可能无法更改捕获图像的尺寸,但可以调整图像的大小。以下是指向的链接,其中包含有关调整大小的信息