J'ai incorporé les résultats vidéo MPlayer dans TPanel
avec succès, MAIS je ne peux pas copier les résultats TPanel
dans un TImage
.Copier l'image affichée sur un TPanel dans un TImage
seule l'image normale de TPanel
est copié dans TImage
:
incorporation est effectuée en utilisant la tuyauterie et MPlayer paramètres de ligne de commande WID. MPlayer utilisant la poignée TPanel
pour afficher les résultats.
Les extraits suivants testés, mais juste image normale TPanel
copié dans TImage
:
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)
);
et ceci:
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;
Je ne connais pas MPlayer en particulier, mais souvent la vidéo est rendue un peu différemment et vous ne pouvez pas prendre une capture d'écran «normale». J'ai trouvé quelques informations sur MPlayer qui suggère que vous devez le démarrer avec un paramètre spécifique, après quoi vous pouvez laisser MPlayer faire des captures d'écran. Peut-être qu'il existe des moyens d'envoyer de telles commandes à votre MPlayer intégré? Voir [this] (http://www.systutorials.com/2990/taking-screenshot-in-mplayer/) et [this] (http://mplayerhq.hu/pipermail/mplayer-users/2004-August/047721 .html). – GolezTrol