Flex, захват снимка с высотой и шириной камеры отличается от видео дисплея - PullRequest
1 голос
/ 03 февраля 2011

У меня есть видео дисплей в моем приложении Flex.который прикреплен к камере.Разрешение камеры может варьироваться в зависимости от выбора пользователя, в то время как размеры отображения видео (предварительного просмотра) являются фиксированными.Затем я делаю это:

bmd.draw (vidDisplay);

, где bmd - это растровое изображение. Проблема в том, что полученное растровое изображение имеет правильный размер настроек камеры (который установлен) но захват видео всегда имеет размер отображения видео внутри растрового изображения. Надеюсь, что это имеет смысл. Результат выглядит как небольшая картинка внутри увеличенного изображения в верхнем левом углу.

Я хочу иметь предварительный просмотр видео с фиксированной высотой, но иметь возможность делать снимки с различным разрешением. Любая помощь приветствуется!

Ответы [ 2 ]

0 голосов
/ 03 февраля 2011

Самый простой способ - просто изменить размер VideoDisplay, прежде чем делать снимок.

videoDisplay.width = desiredWidth;
videoDisplay.height = desiredHeight;

// validate immediately to see new size    
videoDisplay.validateNow();

bitmapData.draw(videoDisplay);

// now restore to original size
videoDisplay.width = originalWidth;
videoDisplay.height = originalHeight;

videoDisplay.validateNow();

Еще лучше было бы, если бы вы использовали отдельный объект flash.media.Video только для того, чтобы сделать снимок.

0 голосов
/ 03 февраля 2011

Вы можете установить размер растрового изображения при его создании:

var bmd: BitmapData = new BitmapData(video.width, video.height);

и затем нарисуйте в нем videoDisplay (само видео, а не окно предварительного просмотра):

bmd.draw(vidDisplay);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...