【问题标题】:Capturing a specific size image from webcam从网络摄像头捕获特定尺寸的图像
【发布时间】:2013-08-01 19:26:30
【问题描述】:

如何从网络摄像头捕获图像并使其具有特定大小,没有空格?

我指定想要的尺寸:

var screenshot:BitmapData = new BitmapData(VD1.width,VD1.height,false);

那是 400x300

然后我从我的 Video 元素中绘制位图 screenshot.draw(VD1);

我可以通过Camera.getCamera.height.width 看到我的相机是352x264px

当我查看生成的图像时,我在边缘看到了空白(灰色,所以你可以看出),就像这样:![在此处输入图像描述][1]

如果您测量实际图像,您会发现它甚至不占用 352x264 像素。即使使用该测量值,右边缘和下边缘仍然存在空白。

Camera.setMode 方法将捕获放大以适应 400x300,但它似乎从它所附加的 Video 对象中直接捕获(当 VD1 对象被绘制到位图时,VD1.attachCamera(myCam) 输出不同的结果。

无论相机分辨率如何,我都希望所有拍摄的图像尺寸相同。有没有办法我可以做到这一点?


作为参考,以下是我捕获图像的方式:

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);

【问题讨论】:

    标签: flash webcam video-capture image-capture


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 2013-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多