0

Web カメラから画像をキャプチャし、空白なしで特定のサイズにするにはどうすればよいですか?

希望のサイズを指定します。

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

それは400x300です

そして、ビデオ要素からビットマップに描画します screenshot.draw(VD1);

カメラが 352x264px であることを確認Camera.getCamera.heightできます.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);
4

1 に答える 1

1

画像がキャプチャされるサイズを変更することはおそらくできませんが、画像のサイズを変更することはできます。サイズ変更に関する情報を含む別の StackOverflow の質問へのリンクを次に示します。

于 2013-08-01T19:49:03.183 に答える