![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Есть проблема с экстрагирование avi фрейма: Суть проблемы заключается в следующем:
Экстрагировать фрейм из AVI с помощью функции взятой отсюда.. Но проблема в том, что эта функция не работает на Windows Xp, а на Win7 все норм. Может кто-то что-то знает по этому поводу? |
|
#2
|
|||
|
|||
|
Может кто-то знает другой способ достать фреймы?
|
|
#3
|
||||
|
||||
|
|
| Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
zibert (10.01.2014)
| ||
|
#4
|
|||
|
|||
|
Цитата:
Это конечно хороший способ. Но не доверяю я Canvas'у. Хотелось бы процедуру которая напрямую это все делает (Без медиа плеера и канваса) Вот нашел функцию, но не могу понять, что нужно указывать в параметре dc: HDC. Остальные параметры более понятны. avifn - путь к ави файлу. TmpBmp - сам фрейм, который получаем на выходе. lPos - номер фрейма, который нужно достать. Если что - то не так, то поправьте. Последний раз редактировалось M.A.D.M.A.N., 11.01.2014 в 10:10. |
|
#5
|
||||
|
||||
|
Цитата:
DC нужно получить Код:
SysDC := GetDC(0); DC := CreateCompatibleDC(SysDC); // Здесь вызов DeleteDC(DC); ReleaseDC(0, SysDC); Последний раз редактировалось M.A.D.M.A.N., 11.01.2014 в 10:10. |
|
#6
|
|||
|
|||
|
Цитата:
Может я использую не такой vfw.pas. Они ведь разные бывают.. Последний раз редактировалось zibert, 11.01.2014 в 01:23. |
|
#7
|
||||
|
||||
|
Я нашёл древний, из поставки GLScene за 2001 год и немного подправил с учётом требований Дельфи 7.
|
|
#8
|
|||
|
|||
|
Цитата:
|
|
#9
|
||||
|
||||
|
Сейчас проверю работу 2-ой функции. Код vfw приложен.
|
|
#10
|
|||
|
|||
|
Цитата:
я вызываю так: Код:
var SysDC,DC:HDC;
......................
SysDC := GetDC(0);
DC := CreateCompatibleDC(SysDC);
GetAVIFrame('типа путь к ави', DC , image1.Picture.Bitmap, 1);
DeleteDC(DC);
ReleaseDC(0, SysDC);А вот когда я делаю так: Код:
GetAVIFrame('типа путь к ави', form1.Canvas.Handle , image1.Picture.Bitmap, 1); |