[Delphi] Przechwycić obraz z odtwarzanego filmu

Odpowiedz Nowy wątek
2006-12-10 03:05
Gość z problemami...
0

Witam :)

Szukam sposobu na przechwycenie obrazu puszczanego w danej chwili przez VMR 9 (lub wogóle przez DirectX - tzn. leci jakiś film) i zrobienie z tego obrazu Print Screena do pliku BMP. Posiada ktoś może skuteczny sposób?

Pozdrawiam :d

Pozostało 580 znaków

2006-12-13 17:17
Gość z problemami...
0

Niewykonalne [???]

Uzupełnię opis o informację, że nie zależy mi na ciągłości odtwarzania - skutki działania mogą być widoczne (np.: zarwanie. pauza, czy czarny ekran na chwilę). Chodzi o samą możliwość zrobienia zrzutu z tego co odtwarza konkretna aplikacja. Chodzi mi dokładnie o program AltDVB (do obsługi karty DVB-PCI). Brakuje mu porządnego modułu do robienia screenshotów. Wiem, że do odtwarzania wykorzystuje coś o nazwie TVideoPanel...

Help [glowa]

Pozostało 580 znaków

2006-12-14 11:01
0

Masz Ty problem Ci powiem :-)

Do rzeczy,mozesz zrobic PrintScreena w Pascalu,ja znam metode z przerwaniamia BIOS'u/DOSa ktore to umozliwiaja [green]

zapraszam na stronke http://81.26.5.254/Members/rt[...]ki/dzienne/systemy-operacyjne

zapoznaj sie z laborkami,jesli Ci za malo to: http://81.26.5.254/Members/achrobot/systemy-operacyjne

ps. nawet gdzies mam chyba taki program,tylko jest jedna niepewna,czy bedzie robic PrtSc podczas odtwarzania filmu :/ pozdrawiam

Pozostało 580 znaków

2006-12-14 17:23
Gość z problemami...
0

Sam Print Screen sprawy nie załatwi, bo zescreenowany musi być tylko obszar, gdzie leci obraz (do tego najlepiej w takiej rozdzielczości jak jest podawany do VMR, czyli przykładowo 720x576 (nawet jeśli na ekranie jest inaczej rozciągnięty, bo ktoś rozciągnął okno programu)...

Brak mi koncepcji jak to zachaczyć [glowa] Jest tu jakiś spec od DS Pack? Może z jego pomocą można na ułamek sekundy przejąć odtwarzanie i wykonać całą operację [???]

Każdy pomysł mile widziany... ;-)

Pozostało 580 znaków

2006-12-14 23:34
0

Operacja którą chcesz zaimplementować nazywa się przejmowaniem nakładki (overlay capturing). Ogólnie jest dosyć skomplikowana, było o tym kilkakrotnie na forum. Innym wyjściem jest całkowite wyłączenie akceleracji sprzętowej, ale przy próbie przejęcia obrazu z gry ta opcja odpada.

P.S. O przerwaniach BIOS/DOS zapomnij, nie te czasy; a i system operacyjny Cię do nich nie dopuści. Ktoś, kto o tym pisze, nie zna się na rzeczy, albo uczył się na Win9x - te rzeczy już dawno nie są aktualne.


<font color="red">Konto porzucone</span>

Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir 'Szczawik' Włodkowski

Pozostało 580 znaków

2006-12-15 02:39
Gość z problemami...
0

O właśnie - ta nazwa się przyda, bo nie za bardzo wiedziałem jak to określić po angielsku - dzięki - będę szukać :-)

Co do drugiej opcji, akurat w moim wypadku sprawa dotyczy tylko i wyłącznie streamu audio/video odtwarzanego z karty DVB-PCI, więc teoretycznie też wchodzi to w grę, ale czy chodzi tu o trwałe wyłączenie, czy da radę zrobić to dynamicznie (tzn. wyłączyć, screen, włączyć).

PS: Jednym i drugim sposobem otrzymam obraz o rozdzielczości zgodnej z pierwotną, rozciągnięty, ale z zachowanymi proporcjami, czy zdeformowany (w zależności od tego jak sobie użytkownik programu porozciągał okno)?

Jeszcze raz dzięki za pomoc [browar]

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0