0
我已成功將MPlayer視頻結果嵌入TPanel
,但無法將TPanel
結果複製到TImage
中。將TPanel上的顯示圖片複製到TImage中
ONLY的TPanel
正常圖象被複制到TImage
:使用配管和MPlayer的WID命令行參數進行
嵌入。 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/)和[this](http://mplayerhq.hu/pipermail/mplayer-users/2004-August/047721)的.html)。 – GolezTrol