大家帮帮小妹妹吧!谁能回答,小妹妹要什么给什么?怎么才能把被当住的窗体上的动态图象截取出来! (100分)

  • 主题发起人 主题发起人 蔓草
  • 开始时间 开始时间

蔓草

Unregistered / Unconfirmed
GUEST, unregistred user!
各位看看我的代码
procedure TForm1.Timer1Timer(Sender: TObject);
var
Bitmap: TBitmap;
MyRect : TRect;
dc:hdc;
bmpcanvas:Tcanvas;
begin
Bitmap := TBitmap.Create;
myrect:=rect(0,0,100,100) ;
bitmap.width:=100;
bitmap.height:=100;
dc:=getdc(form1.Handle);
bmpcanvas:=TCanvas.Create;
bmpcanvas.Handle:=DC;
bitmap.canvas.CopyRect(Rect(0,0,100,100),bmpcanvas,myrect);
form2.show;
Form2.image1.Width:=glass1.Width ;
form2.Image1.Height:=glass1.Height;
Form2.image1.Picture.Bitmap:= bitmap;
Bitmap.Free;
timer1.enabled:=false;

end;
form1被当住,过一会在看,在form2的image1上出现的是屏幕的内容,不是
form1的画面,这是什么原因,请指教?谢谢!
 
没有人知道么?:(
 
你想要干什么?
如果只是想让Form2 显示 Form1 的画面,只需要
Form2.image1.Picture.bitmap:= Form1.GetFormImage;
 
续上。
用 bitmap.canvas.CopyRect(Rect(0,0,100,100),bmpcanvas,myrect); 确实是取得当前
屏幕的Canvas,而不是Form1的画面。
用Form2.image1.Picture.bitmap:= Form1.GetFormImage; 则完全没有问题。

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Form2.image1.Picture.bitmap:= Form1.GetFormImage;
form2.show;
end;
 
simbasun:
你说的很对,果然是这样子,可是怎么设置范围呢,我只想要我选择的范围!
 
procedure TForm1.Button1Click(Sender: TObject);
var tmp : TBitmap;
begin
tmp := TBitmap.Create;
tmp := Form1.GetFormImage;
tmp.Width := 100;
tmp.Height := 100;
Form2.image1.Canvas.CopyRect(Rect(0,0,100,100),tmp.Canvas,Rect(0,0,100,100));
form2.show;
tmp.free;

end;
 
simbasun:对不起,你的方法不行,在FORM1里是要采数码相机的图片,
里面有一个图形采集卡的控件,上面有从数码相机传送过来的动态影像
我就是想可以在后台采集一些图片,但是用你的方法采集到的都是
兰色屏幕,没有图象,请问有什么好办法么?用BITBLT函数可以么?
谢谢?

大家有谁做过类似的,请帮帮忙?我在这里先谢谢大家了!
 
大家帮帮我啊?我快要崩溃了!
 
你为啥不早说是数码相机的动态影像,我的方法是取静态图像的。

你的"图形采集卡的控件" 没有提供 SaveToPicture 之类的功能吗?
我用的视频采集卡有专门的接口函数,直接把动态影像存成单帧的图像。
一般的视频采集卡都有的,你再耐心找找。
 
如果找不到,我这里有一个视频捕捉类的控件,可以给你发一个。
你的Email?
 
simbasun:
对不起,是我太苯了,没有说清楚!
控件里到是有那个功能,但是我不想用,因为它只能把显示出来的图象
整个的保存起来,我现在做了个框框,可以来选择一个范围,用我的代码
现在可以截取出部分图片了,现在的主要问题是我想在后台截取图象,就是
显示的窗体被档住的时候,也可以过一段时间就采集一张出来,不知道
应该怎么实现?
谢谢你,我在加100分给你。
我的EMAIL:lazycat521@263.net
我的QQ:67184676
再次感谢!欢迎您来指导我!

 
这里有屏幕选择拷贝的程序,有用吗
 
w9011,:没有用的,我要的是采用后台窗体上的图象!谢谢!
 
>>用我的代码现在可以截取出部分图片了。
把你的源码贴出来看看,怎么取的?
 
就是上面的呀,不被挡住的时候可以截取,挡住了就是屏幕上的图象!
 
大家帮帮我呀!
 
大家帮帮我呀!
 
大家帮帮我呀!
 
不是不帮
我测试了代码
确实如你所述
就在截取之前吧form active一下吧

关注高手的解答
 
难道真的没有人知道么?
 
后退
顶部