关于在delphi媒体播放器中抓图的问题!(100分)

  • 主题发起人 主题发起人 lxmzm
  • 开始时间 开始时间
L

lxmzm

Unregistered / Unconfirmed
GUEST, unregistred user!
在用delphi5的MediaPlayer进行播放vcd文件,我想进行抓图(在暂停时),部分代码如下:
MediaPlayer1.Display:=panel1;
用bottom7进行抓图操作:
procedure Tmediaplay.Button7Click(Sender: TObject);
var MyBmp : TBitmap;
MyCanvas : Tcanvas;
dc : Hdc;
rect:TRect;
begin

try
myBmp := TBitMap.Create
MyCanvas := TCanvas.Create
rect := MediaPlayer1.DisplayRect
Dc := GetDc(Panel1.Handle);
myCanvas.Handle := dc;
myBmp.Width := rect.Right - rect.Left
myBmp.Height := rect.Bottom - rect.Top
myBmp.Canvas.CopyRect(rect,myCanvas,Rect);
myBmp.SaveToFile('temp.bmp');
finally
ReleaseDC(0 ,dc);
myBmp.Free;
myCanvas.Free;
end;

end;

但发现抓出的图,漆黑一片,不知何原因?跟颜色有关吗?(我的windows设置为800x600,16M颜色)


还有例如:

MCI_SETAUDIO=$873;

MCI_SETVIDEO=$0876 等,在mmsystem中好象没有,delphi的多媒体的帮助中也没有查到!哪才有呢?

 
跟directx有关。
 
这是DirectX的问题
 
那有如何才能截取图型呢?
 
lxmzm:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
lxmzm 你想从设备中取得图像的数据,可是你却没用到设备!!!!
应该是
像下面一样:

procedure TForm1.Button3Click(Sender: TObject);
var abmp:TBitMap;
screenDC : HDC;
begin

if mediaplayer1.Mode=mpPaused then

begin

Button3.Enabled:=true;
abmp := TBitMap.Create;
with abmp, Rect(panel1.ClientTOScreen(Point(0,0)).x,panel1.ClientTOScreen(Point(0,0)).y,
panel1.ClientTOScreen(Point(0,0)).x+panel1.width,
panel1.ClientTOScreen(Point(0,0)).y +panel1.Height)do

begin

width := right - left;
height := bottom - top;
screenDC:=GetDC(0);
try
bitblt(Canvas.handle,0,0,Width,Height,ScreenDC,Left,Top,SRCCOPY);
finally
ReleaseDC(0,ScreenDC);
end;

end;

image1.Picture.Assign(abmp);
if savedialog1.Execute then

begin

image1.Picture.SaveToFile(savedialog1.filename);
end;

end;

end;

(应该能解决你的问题!!!这是一个好友告我的!!!)
 
放VCD时的时候. 图象是叠加上去的. 直接抓
ScreenDC 只有黑色的背景.
 
使用DirectDraw抓图应该没问题。
 
用DirectShow做播放器,可以实现抓拍.
我有编好的控件,想要的话来登记
 
谢谢!我需要!

coldease@etang.com
 
>lxmzm
控件已经给你寄去了,不过我没写帮助,也没做图标,有兴趣可以帮我做一下
 
多人接受答案了。
 
我想要《用DirectShow做播放器》的控件
 
我想要《用DirectShow做播放器》的控件
gxlzbig@263.net
 
我要空间lazycat521@263.net
 
to :LeeChange
给我一份如何?
 
谢谢 我也需要
我的邮箱是 zhongnuo@263.net.cn
 
LeeChange,我现在正急得焦头烂额,能否发一个给我?fujqx@yahoo.com.cn
多谢!
 
后退
顶部