2013-08-01 2 views
0

Как я могу захватить изображение с веб-камеры и иметь конкретный размер без пробелов?Захват изображения определенного размера с веб-камеры

указываю нужный размер:

var screenshot:BitmapData = new 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); 

ответ

1

Вы, вероятно, не может изменить размеры, что изображение захватывается в, но вы можете изменить размер изображения. Вот ссылка на another StackOverflow question с информацией об изменении размера.