Я внедрил видеорезультаты MPlayer в TPanel
, но не смог скопировать TPanel
результатов в TImage
.Копировать отображаемое изображение на TPanel в TImage
ТОЛЬКО нормальная картина TPanel
копируется в TImage
:
Погружение осуществляется с использованием трубопровода и параметров WID командной строки MPlayer. MPlayer с использованием дескриптора TPanel
для отображения результатов.
Следующие фрагменты тестируется, но это нормально TPanel
изображение копируется в 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)
);
и это:
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;
Я не знаю, в частности, MPlayer, но часто видео получается немного по-другому, и вы не можете взять «нормальный» снимок экрана. Я нашел некоторую информацию о MPlayer, которая предполагает, что вам нужно запустить его с помощью определенного параметра, после чего вы можете позволить самому MPlayer делать скриншоты. Может быть, есть способы отправить такие команды на ваш встроенный MPlayer? См. [This] (http://www.systutorials.com/2990/taking-screenshot-in-mplayer/) и [это] (http://mplayerhq.hu/pipermail/mplayer-users/2004-August/047721 .html). – GolezTrol