安装摄象头的图形处理软件,在程序中用OLE方式引用该软件,并读取其中的Buffer进行处理。具体方法要查阅该图形处理软件的帮助说明。
解决方案 »
- 我的D7上的Componnet Palette(组件模板)怎么没有QReport?
- 紧急!!!!读硬盘序列号!
- INDYUDP进行编程时,如果传输文件,用什么办法啊..... (急在线等)
- 欢迎大家下载我的软件,下载者有分.
- access中的字段问题!
- 请问VC中的 (pHeader+1)->m_pReport 转成delphi该如何表示??? 给分!!!
- 李维的Delphi的系列丛书(3本)!
- 关于一个错误,
- 对不起,其实也没什么事,就是dephi5自带Msg聊天程序,我在和我朋友进行试验时,我是用固定IP地址的,而他是一般家里的modem上网(IP是随机的),结果,他能接受到信息,却不能发给我信息,哪位大侠知道怎委回事,难道私人用的IP是单向的吗,只收不发
- 错误提示!!!!'AdoQuery.CommandText does not return a Result Set'是什么意思
- 招聘 Delphi 程序员 同时熟悉c/c++
- 如何获取本机现在时间,急,马上给分,
你给我分我捧你!
不给我分我扁你!
and Fetchf then
//采样按钮是否按下,是否点击的是前进或后退按钮
(兰色按钮)
//如满足条件:
try
myBmp := TBitMap.Create ;
//创建位图对象
MyCanvas := TCanvas.Create ;
//创建画布对象
rect := mdPlayer.DisplayRect ;
//取边界
Dc := GetDc(Panel1.Handle);
//取得Panel1的设备环境
myCanvas.Handle := dc;
//赋给画布对象
myBmp.Width := rect.Right - rect.Left ;
myBmp.Height := rect.Bottom - rect.Top ;
//设定位图大小
myBmp.Canvas.CopyRect(rect,myCanvas,Rect);
//复制于位图对象上
. . . .
//将文件保存于特定路径
//释放所有句柄详细程序如下:
var
Form1 : TForm1;
Fetchf : Boolean;
path : string;
Count : integer;implementation{$R *.DFM}Procedure TForm1.UpdataTrackBar ;
begin
TrackBar.min := MdPlayer.StartPos;
TrackBar.max := MdPlayer.Length;
TrackBar.Position := MdPlayer.Position;
Label2.Caption := '当前位置: '
+Inttostr(MdPlayer.Position);
end;procedure TForm1.InitShow;
begin
with Mdplayer do begin
Form1.Caption := FileName ;
Path := ExtractFilePath(FileName)+'bmp';
Count := 0;
if FileName < > '' then begin
Open;
TrackBar.Enabled := True;
UpdataTrackBar;
TrackBar.SetFocus ;
Frames := 1;
label1.Caption :='文件名: ' +
FileName + #13#10 +' 总长度: '+ Inttostr(Length);
label1.Caption :=Label1.Caption +
#13#10 +' 起始位置: '+ Inttostr(StartPos)
end else begin
Label1.Caption :='';
Label2.Caption :='';
end;
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
MdPlayer.FileName :='';
TrackBar.Enabled := False;
InitShow;
end;procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
mdPlayer.Close ;
end;procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
if SpeedButton1.Down then begin
Fetchf := True;
mdPlayer.Frames := updown1.Position
end
else Fetchf := False;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
MdPlayer.Close ;
TrackBar.Enabled := False;
label1.Caption := '';
label2.Caption := '';
if OpenDlg.Execute then begin
mdPlayer.FileName := OpenDlg.FileName ;
InitShow ;
end;
end;procedure TForm1.MdPlayerClick(Sender: TObject;
Button: TMPBtnType;
var DoDefault: Boolean);
var MyBmp : TBitmap;
MyCanvas : Tcanvas;
dc : Hdc;
rect : TRect;
name,tmp : String;
begin
UpdataTrackBar;
if ((Button = btBack) or (Button = btStep))
and Fetchf then
try
myBmp := TBitMap.Create ;
MyCanvas := TCanvas.Create ;
rect := mdPlayer.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);
count :=count+1;if count< 10 then name := '000' + Inttostr(count)
else if count < 100 then name := '00'
+ Inttostr(count)
else if count< 1000 then name := '0'
+ Inttostr(count);
name := Path + name + '.bmp';
myBmp.SaveToFile(name);finally
ReleaseDC(0 ,dc);
myBmp.Free;
myCanvas.Free;
end;
end;procedure TForm1.TrackBarChange(Sender: TObject);
begin
MdPlayer.Position := TrackBar.Position ;
Label2.Caption := '当前位置: '
+Inttostr(MdPlayer.Position);
end;end.以上是一个从多媒体文件中抓图的代码,分析一下,对你应该有点帮助,原理是一样的!