📄 csdn_文档中心_如何提高截取屏幕的速度?.htm
字号:
<TABLE bgColor=#eeeeee border=0 cellPadding=0 cellSpacing=0 width=600>
<TBODY>
<TR bgColor=#ffffff>
<TD align=middle height=10 width=50></TD>
<TD align=right><A href="http://www.csdn.net/">CSDN</A> - <A
href="http://www.csdn.net/develop/">文档中心</A> - <FONT
color=#003399>Visual C++</FONT> </TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>标题</FONT></TD>
<TD><B> 如何提高截取屏幕的速度?</B> ghj1976(转贴)
</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399><FONT color=#ffffff>关键字</FONT></TD>
<TD width=500> 如何提高截取屏幕的速度?</TD></TR>
<TR>
<TD align=middle height=5></TD>
<TD align=middle width=500></TD></TR>
<TR>
<TD align=middle bgColor=#003399 height=10><FONT
color=#ffffff>出处</FONT></TD>
<TD height=10> <A
href="http://www.xici.net/board/doc.asp?id=151703&sub=0">http://www.xici.net/board/doc.asp?id=151703&sub=0</A></TD></TR>
<TR>
<TD align=middle height=10></TD>
<TD height=10></TD></TR></TBODY></TABLE><!--文章说明信息结束//-->
<TABLE border=0 width=600>
<TBODY>
<TR>
<TD align=left><BR>作者: <STRONG><A
href="http://www.xici.net/mail/sendto.asp?id=Seaky">Seaky</A></STRONG>
发表日期: <STRONG>1999-10-14 23:29:18</STRONG> <A
href="http://www.xici.net/board/board.asp?id=3359">返回《VC论坛》</A> <A
href="javascript:history.go(-1);">快速返回</A>
<P></P>
<P>我用如下的方法截取屏幕,但我发现截取整个800x600x24屏幕需约200ms,有没有更快的方法? <BR>越快越好!
<BR><BR>HDC hScrDC,hMemDC; <BR>HBITMAP hBitmap,hOldBitmap;
<BR><BR>hScrDC=CreateDC("DISPLAY",NULL,NULL,NULL);
<BR>hMemDC=CreateCompatibleDC(hScrDC);
<BR>hBitmap=CreateCompatibleBitmap(hScrDC,nWidth,nHeight);
<BR>hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap);
<BR>BitBlt(hMemDC,0,0,nWidth,nHeight,hScrDC,nX,nY,SRCCOPY);
<BR>hBitmap=(HBITMAP)SelectObject(hMemDC,hOldBitmap); <BR><BR>谢谢各位。
<BR><BR>
<P><IMG height=15 src="CSDN_文档中心_如何提高截取屏幕的速度?.files/doc0.gif"
width=15> 补充日期: <STRONG>1999-10-14 23:32:06</STRONG></P>
<P>smalltalk 1999-10-02
23:30:53 <BR>把BitBlt换成其他的函数试试,<BR>比如StretchBlt 或者
StretchDIBits.<BR>或许会快很多的。<BR><BR><BR><BR>Seaky (555079468)
1999-10-05
08:39:29 <BR>我试了一下StretchBlt函数和BitBlt函数的效果几乎一样,我想StretchDIBits也差不到哪儿去吧!<BR>我觉得应该换个角度...<BR>我现在用DirectDraw,且已获得主表面的指针但不知下面该怎么做?<BR>是否是这样...<BR>LPDIRECTDRAWSURFACE
lpDDSPrimary;<BR>HDC lphDC=NULL;<BR>HBITMAP
hBitmap;<BR><BR>lpDDSPrimary->GetDC(&lphDC);<BR>hBitmap=CreateCompatibleBitmap(lphDC,nWidth,nHeight);<BR>... <BR><BR><BR>Seaky
(555079468) 1999-10-08
22:17:11 <BR>我已知获得主表面的指针后怎么做。<BR>用Lock获取当前帧,然后获得当前屏幕的数据指针“scr”。<BR><BR>但是,我发现这种方法速度仍然不是很快!<BR>我需要抓一次800x600x24的屏幕只需50ms左右的时间!<BR>DirectDraw的高手门,你们在哪儿? <BR><BR><BR>tengel 1999-10-09
11:21:37 <BR>其实用Lock锁住之后,你一个点一个点的取位图肯定很慢,能不能使用像汇编的REP MOVS
来做呢,我也不太清楚<BR><BR><BR><BR>Seaky 1999-10-09
23:11:17 <BR>是一个好的建议!可是这方面我也不清楚。<BR><BR></P>
<P><IMG height=15 src="CSDN_文档中心_如何提高截取屏幕的速度?.files/doc0.gif"
width=15> 补充日期: <STRONG>1999-10-15 23:12:31</STRONG></P>
<P>Seaky (555079468) 1999-10-10
23:02:57 <BR>有高手会tengel所建议的方法吗?<BR><BR><BR><BR>lwm 1999-10-11
16:33:09 <BR>vc中sdk sample wincap 速度很快 <BR><BR><BR>kasper
(555081595) 1999-10-11 21:52:27 <BR>wincap 所用的方法与Seaky的方法完全一样。</P>
<P><IMG height=15 src="CSDN_文档中心_如何提高截取屏幕的速度?.files/doc0.gif"
width=15> 补充日期: <STRONG>1999-10-16 11:55:48</STRONG></P>
<P>Seaky (555079468) 1999-10-11
23:11:05 <BR>谢谢lwm、kasper、tengel、smalltalk!有没有其它建议?<BR>一位朋友建议我用DirectShow来做,因为DirectShow比DD的速度快,但这方面我不太熟悉,有没有哪位知道?<BR>不管用什么方法,只要达到我的要求,我就佩服他(她)! <BR><BR><BR>hwzhang
(555050397) 1999-10-12
09:22:34 <BR>如果不在乎图形质量的话,可以进行抽点,比如每四个像素抽一个,速度会快不少,图形质量也损失不大. <BR><BR><BR>Seaky
(555079468) 1999-10-13
23:08:58 <BR>速度是加快了,但是图形质量损失较大,毕竟是4取1啊!<BR>还有高手吗? <BR><BR><BR>hephaestus 1999-10-14
19:40:17 <BR>我见过的很多纯软件的多媒体教学系统的屏幕传输没有用DirectX技术,却有很好的效率。 <BR><BR><BR>Seaky
(555079468) 1999-10-14
22:35:02 <BR>我并没要求一定用DirectX,只要达到要求,什么方法都可以!<BR>高手们,加油啊!</P>
<P><IMG height=15 src="CSDN_文档中心_如何提高截取屏幕的速度?.files/doc0.gif"
width=15> 补充日期: <STRONG>1999-10-18 01:15:15</STRONG></P>
<P>smalltalk 1999-10-14
22:36:34 <BR>我知道这些纯软件的多媒体教学系统的屏幕传输是如何做的,它们是通过用DDK,将<BR>现有widows
video device driver加上陷阱,直接从GDI数据区取得显示设备上的<BR>bitmap,这一定比用GDI 函数和
DirectX<BR>做要快的多,但我没研究过。 <BR><BR><BR>Seaky (555079468) 1999-10-14
22:51:43 <BR>谢谢smalltalk的建议!<BR></P>
<P><IMG height=15 src="CSDN_文档中心_如何提高截取屏幕的速度?.files/doc0.gif"
width=15> 补充日期: <STRONG>1999-10-19 22:30:29</STRONG></P>
<P>tengel 1999-10-15
09:09:35 <BR>其实即使使用DDK,估计也不会达到seaky所要求的性能,我斗胆问一句Seaky这么快的截屏,想完成什么任务? <BR><BR><BR>Seaky
(555079468) 1999-10-15
23:22:41 <BR>想完成一个跟“多媒体教学系统”差不很多的一个系统,目前正在试smalltalk的建议!<BR>欢迎tengel指教!<BR>我的E-mail:Seaky@990.net <BR><BR><BR>无情剑客
(555079522) 1999-10-17
21:36:34 <BR>我也想知道如何做的,可否公布一下最佳方案的详细做法? <BR><BR><BR>Seaky
(555079468) 1999-10-18
01:20:48 <BR>目前我正在测试各种方法,暂时还没有发现符合要求的最佳方案,发现后一定整理公布!<BR></P>
<DIV align=right>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD class=p9><FONT
color=#ff0000> 海阔凭鱼跃, <BR> 天高任鸟飞! <BR> --Seaky </FONT></TD></TR></TBODY></TABLE></DIV>
<P></P>
<P><IMG height=15 src="CSDN_文档中心_如何提高截取屏幕的速度?.files/doc0.gif"
width=15> 补充日期: <STRONG>1999-10-21 22:36:40</STRONG></P>
<P>Seaky (555079468) 1999-10-21 00:40:42
<BR>我好象已经找到答案了!就是smalltalk所说的用DDK,但还没有最终完成!
<BR>谢谢smalltalk、tengel、lwm、kasper、hwzhang、hephaestus、无情剑客各位最近的参与和建议,谢谢!
<DIV align=right>
<TABLE border=0 cellPadding=0 cellSpacing=0>
<TBODY>
<TR>
<TD class=p9><FONT
color=#ff0000> 海阔凭鱼跃, <BR> 天高任鸟飞! <BR> --Seaky </FONT></TD></TR></TBODY></TABLE></DIV>
<HR>
<BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0
width=770>
<TBODY>
<TR bgColor=#006699>
<TD align=middle bgColor=#006699 id=white><FONT
color=#ffffff>对该文的评论</FONT></TD>
<TD align=middle>
<SCRIPT src="CSDN_文档中心_如何提高截取屏幕的速度?.files/readnum.htm"></SCRIPT>
</TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1
width=770>
<TBODY>
<TR>
<TH bgColor=#006699 id=white><FONT
color=#ffffff>我要评论</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
<TBODY>
<TR>
<TD>你没有登陆,无法发表评论。 请先<A
href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=2798">登陆</A>
<A
href="http://www.csdn.net/expert/zc.asp">我要注册</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>
<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
<TBODY>
<TR align=middle>
<TD height=10 vAlign=bottom><A
href="http://www.csdn.net/intro/intro.asp?id=2">网站简介</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=5">广告服务</A> - <A
href="http://www.csdn.net/map/map.shtm">网站地图</A> - <A
href="http://www.csdn.net/help/help.asp">帮助信息</A> - <A
href="http://www.csdn.net/intro/intro.asp?id=2">联系方式</A> - <A
href="http://www.csdn.net/english">English</A> </TD>
<TD align=middle rowSpan=3><A
href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG
border=0 height=48 src="CSDN_文档中心_如何提高截取屏幕的速度?.files/biaoshi.gif"
width=40></A></TD></TR>
<TR align=middle>
<TD vAlign=top>百联美达美公司 版权所有 京ICP证020026号</TD></TR>
<TR align=middle>
<TD vAlign=top><FONT face=Verdana>Copyright © CSDN.net, Inc. All rights
reserved</FONT></TD></TR>
<TR>
<TD height=15></TD>
<TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--内容结束//--><!--结束//--></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -