Jak zapisać pojedyńczą klatkę z pliku odtwarzanego przez TMediaPlayer
Johnny_Bit
Procedure SaveFrame(FrameNumberToCapture: Integer; Filename: String);
var
BMP : TBitmap;
ADC : HDC;
GetPoint : TPoint;
MyJpeg: TJpegImage;
begin
BMP := TBitmap.Create;
BMP.Height := 240; // tu nalezy ustawić wysokość
BMP.Width := 320; // a tu szerokość klatki filmu
MediaPlayer1.TimeFormat := tfFrames;
MediaPlayer1.Display := Panel1;
GetPoint := Panel1.ClientToScreen(Point(0,0));
ADC := GetDC(0);
MediaPlayer1.Position := FrameNumberToCapture;
Application.ProcessMessages;
Bitblt(BMP.Canvas.Handle, 0,0,
BMP.Width,BMP.Height,
ADC, GetPoint.X, GetPoint.Y, SRCCOPY);
MyJpeg:= TJpegImage.Create;
MyJpeg.Assign(BMP);
MyJpeg.SaveToFile(Filename);
BMP.free;
MyJpeg.free;
end;
pobrane z Experts-Exchange
Niestety nie działa to na plikach .Mpg :-(
na końcu przydałoby się jeszcze
BMP.free; i MyJpeg.free;