150分求“每秒抓超过7次的整屏图像到文件中(仅800*600*16M色就可以了)”(50分)

  • 主题发起人 主题发起人 wql
  • 开始时间 开始时间
如何用directx抓屏实现远程屏幕监视?能给我详细代码吗?E-MAIL:DARK_EAGLE@163.NET
 
呵,,也给我吧,,我再加300,
fors@263.net
 
please send me
yxyletter@21cn.com
 
呵呵,好啊,各位少等几天. 到时一定把源码贴出来. 大家觉得好的话不要忘了给分就可以了.
 
没问题,只要是用directx抓图实时监视远程屏幕的,你要多少分尽管出声!
 
压缩也是一个问题,也要占时间的....
 
如果不要求写硬盘的话,我觉得我一秒能抓15祯左右(800*600*16M色),
to xwings
用directx的. 抓屏。怎么抓?能给例子吗?
 
开辟一个大的内存缓冲区,不久解决了写磁盘成问题吗,再起一个线程,将缓冲区中的内容
压缩写到磁盘上,就可以了。很简单的一个问题吗.
 
测试结果:
Piii-800, 128M,
1024*768: bitblt用时间250ms......
还能快吗?
 
赛杨533 128M 800*600 12ms.
 
to 老赵:
压缩了吗?
 
我也要例子!!
xxhsh@263.net
 
不会吧? 12MS?????
我的程序代码:

time1 := gettickcount;
//建立screen bitmap
ScreenBmp := TBitmap.Create;
ScreenBmp.Width := screen.Width;
ScreenBmp.Height := screen.Height;
ScreenBmp.PixelFormat := pf24Bit;

dc := GetWindowDC(0);
try
ScreenCanvas.Handle := dc;
BitBlt(ScreenBmp.Canvas.Handle, 0,0,screen.Width,screen.Height,
dc, 0,0,SRCCOPY);
finally
ReleaseDC(0, DC);
end;

ShowMessage(inttostr(gettickcount-time1));

800*600: 差不多150MS左右!!!!!!!
 
我的 16bit 800*600没压缩.[:)]
 
我的程序有什么地方有问题?
 
我指的是
dc := GetWindowDC(0);
BitBlt(ScreenBmp.Canvas.Handle, 0,0,screen.Width,screen.Height,
dc, 0,0,SRCCOPY);
这二句,不包括其他语句的执行时间.

另外,您的代码我运行
72ms 奇怪,啥也没动!
ShowMessage(inttostr(gettickcount-time1));
换为caption:=(inttostr(gettickcount-time1));
60ms.
 
那12MS是指哪部分呢?
我也感觉很奇怪啊.....是我的机器有问题? 我是在98,2000下都测试了.
要不,就是显示卡的问题.
我用的是SIS 6326, 8M显存.
 
我也要例程!!!jack0618@21cn.com
 
估计是显卡的事,我的TNT2 model 64
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
680
import
I
后退
顶部