Ich habe MPlayer Videoergebnisse erfolgreich in TPanel
eingebettet, ABER kann TPanel
Ergebnisse nicht in TImage
kopieren.Kopieren Sie das angezeigte Bild auf einem TPanel in ein TImage
nur das normale Bild von TPanel
in TImage
kopiert:
Embedding wird mit Rohrleitungen und MPlayer wid Kommandozeilenparameter durchgeführt. MPlayer, der TPanel
verwendet, um Ergebnisse anzuzeigen.
Die folgenden Schnipsel getestet, aber nur ganz normale TPanel
Bild in TImage
kopiert:
Image1.Picture.Bitmap.Canvas.CopyRect(
Rect(0, 0, Image1.Width-1, Image1.Height-1),
TMyPanel(Panel1).Canvas, //TMyPanel is an empty class to access canvas property
Rect(0, 0, Panel1.Width-1, Panel1.Height-1)
);
und diese:
Function PanelToBmp (Panel:TPanel):TBitmap;
VAR
bmp : tBitmap;
DC : HDC;
Begin
bmp := tBitmap.Create;
bmp.width := Panel.Width;
bmp.Height := Panel.Height;
DC := GetDc (Panel.Handle);
Bitblt(bmp.canvas.handle, 0, 0, Panel.Width, Panel.Height, Dc, 0, 0, NOTSRCCOPY);
Releasedc (Panel.handle,dc);
result := bmp;
End;
Ich kenne nicht speziell MPlayer, aber oft wird Video ein wenig anders gerendert und man kann keinen "normalen" Screenshot davon machen. Ich habe einige Informationen über MPlayer gefunden, die vorschlagen, dass Sie mit einem bestimmten Parameter beginnen müssen, danach können Sie MPlayer selbst Screenshots machen lassen. Vielleicht gibt es Möglichkeiten, solche Befehle an Ihren eingebetteten MPlayer zu senden? Siehe [dies] (http://www.systutorials.com//2990/taking-screenshot-in-mplayer/) und [dies] (http://mplayerhq.hu/pipermail/mplayer-users/2004-August/047721 .html). – GolezTrol