如何从网络摄像头捕获图像并将其设置为特定大小而没有空格?
我指定所需的大小:
var screenshot:BitmapData = new BitmapData(VD1.width,VD1.height,false);
那是 400x300
然后我从我的 Video 元素中绘制位图
screenshot.draw(VD1);
我可以看到我的相机是Camera.getCamera.height
352x264px.width
当我查看生成的图像时,我看到边缘周围都有空白(灰色,所以你可以看出),就像这样:![在此处输入图像描述][1]
如果您测量实际图像,您会发现它甚至不占用 352x264 像素。即使使用该测量值,右边缘和下边缘周围仍然存在空白。
该Camera.setMode
方法将捕获放大以适应 400x300,但它似乎从它所附加的 Video 对象中直接捕获(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);