An eine TPaintBox habe ich auch schon gedacht. Ich weiß nur nicht wie ich das hinbekomme, weil ich am Ende doch nur ein
Handle eines TBitmaps habe.
Delphi-Quellcode:
procedure Tfrm_Haupt.HoleImage(FrameNumber: Integer; ABitmap: TBitmap);
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;
ABitmap.Handle := hBmp;
AVIStreamGetFrameClose(GetFrame);
end;
In der Regel sind die Frames 32Bit und die Source ein AviSynth-Script. Ich werde mir die Graphics32 sofort ansehen, vielleicht bekomme ich damit hin. Wenn Beispiele dabei sollte es auf jeden Fall gehen.