Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
Delphi XE5 Professional
|
Re: Schnellere Alternative zu Avisynth/Vfw möglich?
21. Nov 2005, 22:53
Jetzt habe ich mal das ABitmap : TBitmap als Rückgabe entfernt und bitblt eingefügt.
Delphi-Quellcode:
function Tfrm_Haupt.HoleImage(FrameNumber): Boolean;
begin
GetFrame := AVIStreamGetFrameOpen(AVIStream, nil);
BitmapInfoHeader := AVIStreamGetFrame(GetFrame, FrameNumber);
bits := Pointer(Integer(BitmapInfoHeader) + SizeOf(TBitmapInfoHeader));
DC_Handle := CreateDC('Display', nil, nil, nil);
try
hBmp := CreateDIBitmap(
DC_Handle,
BitmapInfoHeader^,
CBM_INIT,
bits,
PBITMAPINFO(BitmapInfoHeader)^,
DIB_RGB_COLORS);
finally
DeleteDC(DC_Handle);
end;
bitblt (img_Video.Canvas.Handle,
0,
0,
BitmapInfoHeader.biWidth,
BitmapInfoHeader.biHeight,
hBmp,
0,
0,
SrcCopy);
AVIStreamGetFrameClose(GetFrame);
Result := True;
end;
Das Bild ist weiß und alles sehr träge. In den Beispiele, welche ich gesehen habe wurde auch mit Bitmaps gearbeitet. Hier ist die Source ein DIBitmap.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
|
|
Zitat
|