void __fastcall TForm1::Button1Click(TObject *Sender)
{
BitBlt(Image1->Canvas->Handle,
0,0,
Image1->Width, Image1->Height,
Panel1->Handle,
0,0,
SRCCOPY);
}
avi в bitmap
Не посмотрите код, что делаю не так?
Код:
В программе идет видеопоток (TMediaPlayer проигрывает какой нить файл) и отображается на компоненте Panel1. Во время его просмотра я бы хотел нажатием на Button1 вывести кадр, который воспроизводится в данный момент, на канву TImage. Вроде все делаю по инструкции ;) Но получаеццо тока белый цвет ;)
2) почему бы не взять исходники виртуал даба или многочисленных плейеров и не порыть?
// видео скорее всего через оверлей идет и его физически нет там где вы его дернуть хотите :)
http://bugtraq.ru/forum/full/2001/programming/12517.html
Но она у меня ни под Дельфей, ни под Билдером не выводит то что, требуется.
2.Спасибо за совет. Попробую посмотреть, что можно сделать с "оверлеем".
1. Хороший ответ - все ;) Радует что кода всего одна строчка ;))) Вобщем использовать функцию BitBlt стал не с потолка, в инете нарыл ссылку
Но она у меня ни под Дельфей, ни под Билдером не выводит то что, требуется.
2.Спасибо за совет. Попробую посмотреть, что можно сделать с "оверлеем".
Метод копирования с панели работает. иногда. кое где. но делать так все равно не рекомендуется.
Всем спасибо, проблема решена. Спасибо компонентам TFilterGraph и TSampleGrabber за то что они существуют ;)