![]() |
Video vergrößern
Hat jemand Informationen darüber wie ich Videos mit DirectShow zoomen kann?
Informationen darüber im NET zu finden sind spärlich. Wie kompliziert wäre das? gruss |
AW: Video vergrößern
Was meinst du mit vergrößern? Nur die Anzeige oder so speichern?
|
AW: Video vergrößern
Zitat:
gruss |
AW: Video vergrößern
Möchtest du z.B. ein 320x200 Video mit 640x400 ansehen oder als ein Video mit der Auflösung speichern?
|
AW: Video vergrößern
Zitat:
Von speichern war nicht die rede. ;) gruss |
AW: Video vergrößern
Ich habe da noch etwas uraltes (2006). Könnte mittlerweile etwas anders aussehen, läuft aber zumindest noch. Über die Größe des Fensters ergibt sich einfach die angezeigte Größe.
Weiter ist ein Boolean zum Abbrechen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var pGraph: IGraphBuilder; pMediaControl: IMediaControl; pEvent: IMediaEvent; pSeek: IMediaSeeking; pVidWin: IVideoWindow; evCode, x, y: Integer; lpParam1, lpParam2: LONG_PTR; tim, dim: Int64; begin if not OpenDialog1.Execute then exit; CoCreateInstance(CLSID_FilterGraph, Nil, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, pGraph); pGraph.QueryInterface(IID_IMediaControl, pMediaControl); pGraph.QueryInterface(IID_IMediaEventEx, pEvent); pGraph.RenderFile(PWIdeChar(OpenDialog1.FileName), Nil); pGraph.QueryInterface(IID_IMediaSeeking, pSeek); pSeek.GetDuration(tim); Label1.Caption:=IntToStr(tim div 10000000); pGraph.QueryInterface(IID_IVideoWindow, pVidWin); pVidWin.put_Owner(Handle); pVidWin.put_WindowStyle(WS_CHILD); pVidWin.get_Width(x); pVidWin.get_Height(y); pVidWin.SetWindowPosition(2, Panel1.Height+2, x, y); //Wiedergabegröße weiter:=true; pMediaControl.Run; while weiter do begin if pEvent.GetEvent(evCode, lpParam1, lpParam2, 0)<>E_ABORT then begin if evCode=EC_COMPLETE then weiter:=false; pEvent.FreeEventParams(evCode, lpParam1, lpParam2); end; pSeek.GetPositions(tim, dim); Label2.Caption:=IntToStr(tim div 10000000); Application.ProcessMessages; end; pVidWin.put_Visible(FALSE); pVidWin.put_Owner(0); pVidWin._Release; Pointer(pVidWin):=Nil; pMediaControl._Release; Pointer(pMediaControl):=Nil; pEvent._Release; Pointer(pEvent):=Nil; pGraph._Release; Pointer(pGraph):=Nil; end; |
AW: Video vergrößern
Danke werde mich mal einlesen ;)
gruss |
AW: Video vergrößern
Mit Delphi 2010 hast du aber wohl noch Glück und kannst dir die Arbeit sparen.
![]() |
AW: Video vergrößern
Zitat:
Kein DSPack.. gruss |
AW: Video vergrößern
Habe den zoom jetzt auf der Basis von DSPack ausgelegt eine andere Möglichkeit mit madVr in Zusammenhang
mit BasicVideo2 würde nicht funktionieren. Das Problem ist nun das EVR und die anderen Filter aber nicht auf BasicVideo2 ausgelegt sind. Ich finde nicht das richtige Spektrum um auch hier den Zoom Effekt anwenden zu können. Hmm.... über
Delphi-Quellcode:
sieht das sehr bescheiden aus.
function SetVideoPosition({unique} pnrcSource: PMFVideoNormalizedRect; {unique} prcDest: PRECT): HResult; stdcall;
function GetVideoPosition(out pnrcSource: TMFVideoNormalizedRect; out prcDest: TRECT): HResult; stdcall; gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz