Консультация № 110042
18.11.2007, 20:18
0.00 руб.
0 1 1
Задача: После запуска WindowsMediaPlayer необходимо с заданным интервалом времени считывать кадр видео и обработать своей программой, в частности, подсчитать число пикселей определенного цвета в кадре, а затем суммировать число пикселей по всему видеофильму.
Не знаю как решить задачу доступа к растру.
Знаю только, как работает FindWindow.
Какова далжна быть последовательность операторов WinAPI, чтобы попиксельно обработать полученный кадр ?

Обсуждение

Неизвестный
19.11.2007, 10:35
общий
это ответ
Здравствуйте, !

Для того чтобы понять как работает mediaplayer вам стоит почитать на тему фильтров DirectShow. После чего вы обнаружите, что существует масса способов вывода на экран (способов работы рендерера - GDI, Overlay, DDBlt, VMR), и чтобы написать универсальный получатель кадров, придется писать свой фильтр DirectShow, который будет вклиниваться между декодером и рендерером и выдавать вам кадры (в принципе в микрософтовском SDK были заготовки на эту тему).

FindWindow может помочь только в случае, если вы заблокируете в проигрывателе все способы вывода кроме GDI (все начнет изрядно тормозить, зато можно будет делать обратный блитттинг (BitBlt) с Primary поверхности(экрана) в память).
Форма ответа